Preloader Class Causing a Migrane!

Hi,

I have used a preloader class that loads an external “main” movie.

Whilst the main movie works fine alone I have issues when it is loaded through the preloader class.

TypeError: Error #1009: Cannot access a property or method of a null object reference.
at roberts_fla::MainTimeline/roberts_fla::frame1()

I do not know how to correct the issue, my AS for the preloader class is:

import flash.events.ProgressEvent;
stage.scaleMode = "noScale";
stage.align = "tl";
import fl.transitions.Tween;
import fl.transitions.easing.*;
import com.greensock.*;
import com.greensock.easing.*;


var l:Loader = new Loader();
l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
l.load(new URLRequest("roberts.swf"));

preloader_mc.x = stage.stageWidth / 2;
var preloader_y:Tween = new Tween(preloader_mc, "y", Elastic.easeOut, (stage.stageHeight/2)+150, stage.stageHeight/2, 3, true);
var preloader_alpha:Tween = new Tween(preloader_mc, "alpha", Regular.easeOut, 0, 1, 0.5, true);

stage.addEventListener(Event.RESIZE, resizeListenerloader);

function resizeListenerloader(Event) {
	preloader_mc.x = stage.stageWidth / 2;
	preloader_mc.y = stage.stageHeight / 2;

} 

function loop(e:ProgressEvent):void {
	var perc:Number = Math.floor( (e.bytesLoaded*100)/e.bytesTotal );
	percent.text = Math.ceil(perc).toString();


	if (preloader_mc is MovieClip) {
		preloader_mc.gotoAndStop(perc);
	}
}


function done(e:Event):void {
	TweenLite.to(preloader_mc, 0.7, {y:(stage.stageHeight/2)-150, alpha: 0, ease:Strong.easeOut, onComplete: out});
}

function out(param1:Number=0, param2:Number=0):void {
	removeChildAt(0);
	removeChild(preloader_mc);
	percent = null;
	addChild(l);
	stage.removeEventListener(Event.RESIZE, resizeListenerloader);
}


and frame 1 of the main is:

stage.scaleMode = "noScale";
stage.align = "tl";

stop();

scripthold_mc.x = stage.stageWidth / 2;
scripthold_mc.y = stage.stageHeight / 2;


	stage.addEventListener(Event.RESIZE, resizeListenerscript);
//then in the resize handler:
function resizeListenerscript(Event)
{
	scripthold_mc.x = stage.stageWidth / 2;
	scripthold_mc.y = stage.stageHeight / 2;

}

scripthold_mc.enter_mc.addEventListener(MouseEvent.MOUSE_DOWN, entersite);
scripthold_mc.enter_mc.buttonMode = true;
function entersite(MouseEvent):void {
gotoAndPlay("mainstart","main")
}

Can anyone help me please?

Thanks
Phil