             
             // Call end on the currently playing set
             var currentInstances:Array = queueCopy[currentSetIndex];
-            var currentCount:int = currentInstances.length;
-            
-            for (var i:int = 0; i < currentCount; i++)
-            {
-                currentInstances[i].end();
+            if (currentInstances)
+            {
+                var currentCount:int = currentInstances.length;                
+                for (var i:int = 0; i < currentCount; i++)
+                {
+                    currentInstances[i].end();
+                }
             }
             
             var n:int = queueCopy.length;

                        instances[0].actualDuration;
                    if (value < endTime)
                    {
                        // These are the effects that should be active
                        // simply seek to the right time in the effect
                        if (currentSetIndex != i)

                    }
                    else
                    {
                        // setting endEffectCalled works around a side-effect
                        // of the onEffectEnd() handler where it will
                        // automatically launch the next child effect
                        endEffectCalled = true;

                        // if we're seeking past the currently playing
                        // instance, end it
                        if (currentSetIndex == i)
                        {
                            for (var j:int = 0; j < instances.length; j++)
                                instances[j].end();
                        }
                        else
                        {
                            // more child effects to go: set up currentSet vars
                            // to point to the appropriate ones
                            currentSetIndex = i;
                            var nextInstances:Array = activeEffectQueue[currentSetIndex];                                
                            currentSet = [];
                            var childEffect:EffectInstance;
                            for (var l:int = 0; l < nextInstances.length; l++)
                            {
                                childEffect = nextInstances[l];                                    
                                currentSet.push(childEffect);
                            }
                            // Skip past effects by playing them with no duration
                            for (l = 0; l < instances.length; l++)
                                instances[l].playWithNoDuration();
                        }
                        endEffectCalled = false;
                    }
                    cumulativeDuration = endTime;
                }
                if (finishWhenDone)
                {
                    finishRepeat();
                    currentSetIndex = -1;
                }
                    
            }
        }
        // Seek in the SequenceInstance itself, which advances the
