I've made a preloader using a document class and the following code:
Code:
package 
{
	import flash.display.MovieClip;
	import flash.display.Loader;
	import flash.events.*;
	import flash.net.URLRequest;

	public class Loading extends MovieClip 
	{
		private var url:String;
		private var loader:Loader;

		public function Loading() 
		{
			url='test.swf';
			var request:URLRequest=new URLRequest(url);
			loader=new Loader();
			initListeners(loader.contentLoaderInfo);
			loader.load(request);
		}
		
		private function initListeners(dispatcher:IEventDispatcher):void 
		{
			dispatcher.addEventListener(Event.COMPLETE,onComplete);
		}
		
		private function onComplete(event:Event):void 
		{
			removeChild(preloader_mc);
			addChild(loader);
		}
	}
}
The preloader_mc is a 40 frame movieclip (instanced in the first frame of the timeline). The problem is when it starts playing the test movie it starts playing at however many frames it's played. So if the preloader movie clip plays through one, it skips 40 frames, twice and it skips 80, etc.

I've tried putting a gotoAndPlay(1) after the addChild call, but that doesn't help. Any ideas?