public void load(string name) {
    StartCoroutine(LoadNextLevel(name));
}

IEnumerator LoadNextLevel(string name) {
    AsyncOperation ao = Application.LoadLevelAsync(name);
    ao.allowSceneActivation = false;

    while( ao.progress < 0.9f ) {
        yield return new WaitForEndOfFrame();
    }
    //次のレベルに遷移
    ao.allowSceneActivation = true;

    yield return null;
}

上記のスクリプトをシーン遷移時に起動しています。
A⇒B⇒A⇒Bといったシーン遷移を繰り返した場合、2回目以降のシーン遷移が行われない場合があります。具体的にはao.progressの値が常に0のままになります。
原因や解決策などご存知でしょうか。

unity 5.2.2