 		private var _bdOriginal:BitmapData;
 		private var _bd:BitmapData;
 		
-		private var _matrix:Matrix = new Matrix();
+		private var _matrix:Matrix = null;
 		
 		private var _history:Array = [];
 		private var _historyIndex:int = 0;

								
				// special care for default scaling method
				if (resample == 'default') {
					_matrix.scale(newScale, newScale);
					onOperationComplete();
					draw();
					if (scale < 1 && _bd.width <= dstWidth || _bd.width >= dstWidth) {
						onDrawComplete();
					} else {
						dispatchEvent(new OProgressEvent(OProgressEvent.PROGRESS, step++, totalSteps));

		
		protected function _flipH() : void
		{
			if (!_matrix) {
				_matrix = new Matrix;
			}
			_matrix.scale(-1, 1);
			_matrix.translate(_bd.width, 0);
			onOperationComplete();
