 			
 			_numPushes--;
 			if (restore)
+			{
 				_matrix.copyRawDataFrom(_data, _numPushes * 16);
+				_invalidComponents = COMPONENT_ALL;
+			}
 			
 			if (!_locked)
 				_changed.execute(this);

			);

			_matrix.copyRawDataFrom(TMP_VECTOR);
			
			if (!_locked)
				_changed.execute(this);

										axis		: Vector4,
										pivotPoint	: Vector4 = null) : Matrix4x4
		{
			_invalidComponents = COMPONENT_ALL;
			_matrix.prependRotation(
				radians * RAD2DEG,
				axis._vector,
				pivotPoint ? pivotPoint._vector : null
			);
			
			if (!_locked)
				_changed.execute(this);
