Why are my particles null?

I do not understand how my particles are null after just instantiating them. I even debug and the output is Unity.GameObject. If it was null at that point, Null would be written to the console..

void InstantiateParticles()
{
    if (Input.GetKeyDown("space"))
    {
            theRedParticles = (GameObject) Instantiate(RedParticles, transform.position, Quaternion.identity);
            StartCoroutine(Wait());
    }
}

private IEnumerator Wait()
{   
    const int emitOnTime = 22,
    emitOffTime = 20
    ;
    const float ticks = 0.1f
    ;

    while (theRedParticles != null) 
    {
        // We just instantiated, begin the iteration with theRedParticles existing
        // Keep the particles emitting for about 2 seconds:
        for (int x = 0; x < emitOnTime; x++)
        {
            yield return new WaitForSeconds(ticks);
        }

        if (theRedParticles) {
            // Turn the particle emitter off after waiting 2 seconds
            theRedParticles.particleEmitter.emit = false;
        }

        for (int x = 0; x < emitOffTime; x++)
        {
            // keep the particles off for an additional 2 seconds.
            yield return new WaitForSeconds(ticks);
        }

        Debug.Log(theRedParticles); // Reports: Unity.GameObject

        if (theRedParticles != null) {  // This never happens...
            // Should be able to turn the particle emitter back on
            theRedParticles.particleEmitter.emit = true;
        }

        // continue to iterate.
    }
    Debug.Log(theRedParticles); // Reports: Unity.GameObject
    yield return 0;
}

The problem is located when I want to turn the particle emitter on after waiting about 2 seconds after turning it off.

As I understand it, turning the particle emitter on/off does not make the instantiated GameObject null..Why is it, that the condition to turn the particle emitter on never happens?

I guess you have autodestruct on for the particle system.