void CreateThreadSafeScriptingConsole()
		{
			threadSafeConsole = new TestableThreadSafeScriptingConsole();
			
			dispatcher = threadSafeConsole.Dispatcher;
			dispatcher.CheckAccessReturnValue = true;
			
			nonThreadSafeScriptingConsole = threadSafeConsole.NonThreadSafeScriptingConsole;
			
			threadSafeConsoleEvents = threadSafeConsole.ConsoleEvents;
		}
        TestableThreadSafeScriptingConsole(IScriptingConsole nonThreadSafeScriptingConsole,
                                           ThreadSafeScriptingConsoleEvents consoleEvents,
                                           IControlDispatcher dispatcher)
            : base(nonThreadSafeScriptingConsole, consoleEvents, dispatcher)
        {
            NonThreadSafeScriptingConsole = (FakeScriptingConsole)nonThreadSafeScriptingConsole;
            ConsoleEvents = (TestableThreadSafeScriptingConsoleEvents)consoleEvents;
            Dispatcher    = (FakeControlDispatcher)dispatcher;

            ConsoleEvents.Dispatcher = Dispatcher;
            ConsoleEvents.NonThreadSafeScriptingConsole = NonThreadSafeScriptingConsole;
        }
		TestableThreadSafeScriptingConsole(IScriptingConsole nonThreadSafeScriptingConsole,
			ThreadSafeScriptingConsoleEvents consoleEvents,
			IControlDispatcher dispatcher)
			: base(nonThreadSafeScriptingConsole, consoleEvents, dispatcher)
		{
			NonThreadSafeScriptingConsole = (FakeScriptingConsole)nonThreadSafeScriptingConsole;
			ConsoleEvents = (TestableThreadSafeScriptingConsoleEvents)consoleEvents;
			Dispatcher = (FakeControlDispatcher)dispatcher;
			
			ConsoleEvents.Dispatcher = Dispatcher;
			ConsoleEvents.NonThreadSafeScriptingConsole = NonThreadSafeScriptingConsole;
		}