 				_bd = _bdOriginal.clone();
 			}
 			draw();
+			
+			if (scale == 1) {
+				onOperationComplete();
+				onDrawComplete();
+				return;
+			}
 			
 			var step:uint = 1;
 			var dstWidth:Number = _bd.width * scale;

								
				// 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));

					_bd.dispose();
					_bd = tmpBd;
										
					if (scale < 1 && tmpBd.width <= dstWidth || scale > 1 && tmpBd.width >= dstWidth) {
						onOperationComplete();
						onDrawComplete();
					} else {
