Index: engines/scumm/input.cpp
===================================================================
--- engines/scumm/input.cpp	(revision 43780)
+++ engines/scumm/input.cpp	(working copy)
@@ -444,6 +444,9 @@
 	// On Alt-F5 prepare savegame for the original save/load dialog.
 	if (lastKeyHit.keycode == Common::KEYCODE_F5 && lastKeyHit.flags == Common::KBD_ALT) {
 		prepareSavegame();
+		if (_game.id == GID_MANIAC && _game.version == 0) {
+			runScript(2, 0, 0, 0);
+		}
 	}
 
 	if (VAR_KEYPRESS != 0xFF && _mouseAndKeyboardStat) {		// Key Input
Index: engines/scumm/script_v4.cpp
===================================================================
--- engines/scumm/script_v4.cpp	(revision 43780)
+++ engines/scumm/script_v4.cpp	(working copy)
@@ -393,16 +393,12 @@
 
 void ScummEngine_v4::o4_saveLoadGame() {
 	getResultPos();
+	byte slot;
 	byte a = getVarOrDirectByte(PARAM_1);
-	byte slot = a & 0x1F;
 	byte result = 0;
 
-	// Slot numbers in older games start with 0, in newer games with 1
-	if (_game.version <= 2)
-		slot++;
-
-	if ((_game.id == GID_MANIAC) && (_game.version <= 1)) {
-		// Convert older load/save screen
+	if (_game.version <= 1) {
+		// Convert V0/V1 load/save screen (they support only one savegame per disk)
 		// 1 Load
 		// 2 Save
 		slot = 1;
@@ -411,6 +407,10 @@
 		else if ((a == 2) || (_game.platform == Common::kPlatformNES))
 			_opcode = 0x80;
 	} else {
+		slot = a & 0x1F;
+		// Slot numbers in older games start with 0, in newer games with 1
+		if (_game.version <= 2)
+			slot++;
 		_opcode = a & 0xE0;
 	}
 
