 			_testHistory.push(new UndoableCommand());
 			Assert.assertTrue(_testHistory.canStepBackward);
 			_testHistory.rewind();
+			Assert.assertEquals(_testHistory.currentPosition, 0);
+			Assert.assertEquals(_testHistory.numberOfHistoryItems, 4);
 			Assert.assertFalse(_testHistory.canStepBackward);
 			Assert.assertFalse(_testHistory.canStepBackward);
 			Assert.assertFalse(_testHistory.canStepBackward);

			// Note it should wipe TWO commands from history, 
            // replacing the first with new
			Assert.assertEquals(_testHistory.currentPosition, 3);
			_testHistory.rewind();
			_testHistory.push(new UndoableCommand());
			Assert.assertEquals(_testHistory.currentPosition, 1);
			
		
		}
		
		
		[Test]
		// Ensure pushing a command to the middle of the
		// history, wipes subsequent history
		public function testComprehensive():void {
			Assert.assertEquals(_testHistory.currentPosition, 0);
			Assert.assertFalse(_testHistory.canStepBackward);

		
		[Test]
		public function testStepForwardNoHistory():void {
			Assert.assertEquals(_testHistory.currentPosition, 0);
			_testHistory.stepForward();
			Assert.assertEquals(_testHistory.currentPosition, 0);
			Assert.assertFalse(_testHistory.canStepForward);
			Assert.assertFalse(_testHistory.canStepBackward);
			
		}
		[Test]
		public function testStepBackwardNoHistory():void {
			Assert.assertEquals(_testHistory.currentPosition, 0);
			_testHistory.stepBackward();
			Assert.assertEquals(_testHistory.currentPosition, 0);
			Assert.assertFalse(_testHistory.canStepForward);
			Assert.assertFalse(_testHistory.canStepBackward);
			
		}
		
