public void onStepClick()
	{
		if(runProgram.isAlive())
		{	
			synchronized(BareBonesInterpreter.syncObject)
			{
				BareBonesInterpreter.syncObject.notifyAll();
			}
			try 
			{
				Thread.sleep(16);
			} 
			catch (InterruptedException e) 
			{
			}
			
			UpdateVariables();
		}
		else
		{
			BareBonesInterpreter.pause();
			pauseButton.setLabel("Resume");
			runProgram = new Thread(runProgramRunnable);
			runProgram.start();
			programMonitor = new Thread(programMonitorRunnable);
			programMonitor.start();
			
			variableList.removeAll();
			
			try 
			{
				Thread.sleep(16);
			} 
			catch (InterruptedException e) 
			{
			}
			if(runProgram.isAlive()) UpdateVariables();
		}
	}