diff -ur ScummVM-cvs20020924/scummvm/scumm/scummvm.cpp ScummVM-cvs20020924+hack/scummvm/scumm/scummvm.cpp
--- ScummVM-cvs20020924/scummvm/scumm/scummvm.cpp	2002-09-24 08:16:45.000000000 +0200
+++ ScummVM-cvs20020924+hack/scummvm/scumm/scummvm.cpp	2002-09-24 20:06:22.000000000 +0200
@@ -1016,7 +1016,7 @@
 			runScript(_vars[VAR_UNK_SCRIPT_2], 0, 0, 0);
 	} else if (_lastKeyHit == _vars[VAR_TALKSTOP_KEY]) {
 		_talkDelay = 0;
-		if (_sound->_sfxMode == 2)
+		if (_sound->_sfxMode & 2)
 			stopTalk();
 		return;
 	} else if (_lastKeyHit == '[') { // [, eg volume down
diff -ur ScummVM-cvs20020924/scummvm/scumm/sound.cpp ScummVM-cvs20020924+hack/scummvm/scumm/sound.cpp
--- ScummVM-cvs20020924/scummvm/scumm/sound.cpp	2002-09-22 03:17:53.000000000 +0200
+++ ScummVM-cvs20020924+hack/scummvm/scumm/sound.cpp	2002-09-25 02:36:19.000000000 +0200
@@ -393,7 +393,7 @@
 		_talk_sound_mode = 0;
 	}
 
-	if (_scumm->_vars[_scumm->VAR_TALK_ACTOR]) { //_sfxMode == 2) {
+	if (_scumm->_vars[_scumm->VAR_TALK_ACTOR]) { //_sfxMode & 2) {
 		act = _scumm->_vars[_scumm->VAR_TALK_ACTOR];
 		if (_talkChannel < 0)
 			finished = false;
@@ -422,14 +422,14 @@
 		
 		if (finished  && _scumm->_talkDelay == 0) {
 			_scumm->stopTalk();
-			_sfxMode = 0;
+			_sfxMode &= ~2;
 			_talkChannel = -1;
 		}
 	}
 		
-	if (_sfxMode == 1) {
+	if (_sfxMode & 1) {
 		if (isSfxFinished()) {
-			_sfxMode = 0;
+			_sfxMode &= ~1;
 		}
 	}
 }
@@ -490,7 +490,7 @@
 		num--;
 	}
 	_mouthSyncTimes[i] = 0xFFFF;
-	_sfxMode = mode;
+	_sfxMode |= mode;
 	_curSoundPos = 0;
 	_mouthSyncMode = true;
 
@@ -498,9 +498,9 @@
 }
 
 void Sound::stopTalkSound() {
-	if (_sfxMode == 2) {
+	if (_sfxMode & 2) {
 		stopSfxSound();
-		_sfxMode = 0;
+		_sfxMode &= ~2;
 	}
 }
 
