      */
     override public function onTweenEnd(value:Object):void 
     {
-        super.onTweenEnd(value);
         if (eventSource)
             eventSource.removeEventListener(eventName, eventHandler);
+        super.onTweenEnd(value);
     }
 }
 

            eventSource.addEventListener(eventName, eventHandler);
        }

        tween = createTween(this, 0, 0, duration);
    }
    
    //--------------------------------------------------------------------------

     */
    private function eventHandler(event:Event):void
    {
        if (duration >= 0)
        {
            // Non-negative duration means we must have started
            // a tween; let it end normally
            end();
        }
        else
        {
            // We didn't start a tween, so finish the effect manually
            if (eventSource)
                eventSource.removeEventListener(eventName, eventHandler);
            finishRepeat();
        }
    }

    /**
