Coroutine stopping before it is complete

I have a coroutine that starts other coroutines and waits for them to complete in order for them to animate sequentially. However, the coroutine stops half way through and I don’t know why. (I am not calling StopCoroutinesAllCoroutines() anywhere). Any idea why?

public IEnumerator ShowPreGameScreen(bool animated, bool waitForCompletion)
{
    	print ("Got Here 1"); // <-- prints
    	yield return StartCoroutine(preGameScreen.Show(animated, waitForCompletion)); // <-- executes
    	print ("Got Here 2"); // <-- does NOT print
    	yield return StartCoroutine(ShowTopBar(animated, waitForCompletion)); // <-- does NOT execute
    	print ("Got Here 3"); // <-- does NOT print	
}

Derp. Found the problem. My “WaitForAnimationComplete()” function was getting stuck. Now why animation.IsPlaying returns true forever I don’t know. But that was my problem. Sorry for wasting your time.