diff -ur ScummVM-cvs20021116/scummvm/scumm/costume.cpp ScummVM-cvs20021116+hack/scummvm/scumm/costume.cpp
--- ScummVM-cvs20021116/scummvm/scumm/costume.cpp	2002-10-24 08:28:54.000000000 +0200
+++ ScummVM-cvs20021116+hack/scummvm/scumm/costume.cpp	2002-11-17 12:17:18.000000000 +0100
@@ -584,7 +584,7 @@
 				_scaleIndexX = t + _scaleIndexXStep;
 				if (cost_scaleTable[t] < _scaleX) {
 					_xpos += _scaleIndexXStep;
-					if (_xpos >= _vm->_realWidth)
+					if (_xpos < 0 || _xpos >= _vm->_realWidth)
 						return;
 					maskbit = revBitMask[_xpos & 7];
 					_backbuff_ptr += _scaleIndexXStep;
@@ -646,7 +646,7 @@
 				_scaleIndexX = t + _scaleIndexXStep;
 				if (cost_scaleTable[t] < _scaleX) {
 					_xpos += _scaleIndexXStep;
-					if (_xpos >= _vm->_realWidth)
+					if (_xpos < 0 || _xpos >= _vm->_realWidth)
 						return;
 					maskbit = revBitMask[_xpos & 7];
 					_backbuff_ptr += _scaleIndexXStep;
@@ -707,7 +707,7 @@
 				_scaleIndexX = t + _scaleIndexXStep;
 				if (cost_scaleTable[t] < _scaleX) {
 					_xpos += _scaleIndexXStep;
-					if (_xpos >= _vm->_realWidth)
+					if (_xpos < 0 || _xpos >= _vm->_realWidth)
 						return;
 					_backbuff_ptr += _scaleIndexXStep;
 				}
@@ -1180,7 +1180,7 @@
 				_scaleIndexX = t + _scaleIndexXStep;
 				if (cost_scaleTable[t] < _scaleX) {
 					_xpos += _scaleIndexXStep;
-					if (_xpos >= _vm->_realWidth)
+					if (_xpos < 0 || _xpos >= _vm->_realWidth)
 						return;
 					maskbit = revBitMask[_xpos & 7];
 					_backbuff_ptr += _scaleIndexXStep;
