diff -dupr us428control-0.4.5-5/configure.in us428control-0.4.6-1/configure.in
--- us428control-0.4.5-5/configure.in	2007-02-09 18:01:59.000000000 +0000
+++ us428control-0.4.6-1/configure.in	2007-02-16 00:27:02.000000000 +0000
@@ -1,5 +1,5 @@
 AC_INIT(us428control.cc)
-AM_INIT_AUTOMAKE(us428control, 0.4.5)
+AM_INIT_AUTOMAKE(us428control, 0.4.6)
 AC_PROG_CXX
 AC_PROG_INSTALL
 AC_HEADER_STDC
diff -dupr us428control-0.4.5-5/Cus428State.cc us428control-0.4.6-1/Cus428State.cc
--- us428control-0.4.5-5/Cus428State.cc	2007-02-14 18:18:53.000000000 +0000
+++ us428control-0.4.6-1/Cus428State.cc	2007-02-16 00:26:34.000000000 +0000
@@ -231,9 +231,7 @@ void Cus428State::UserKnobChangedTo(eKno
 					}
 				}
 			}
-			LightSet(eL_BankL, (aBank == 0));
-			LightSet(eL_BankR, (aBank == cBanks - 1));
-			LightSend();
+			BankSend();
 		}
 		if (verbose > 1)
 			printf(" Light is %i\n", LightIs(eL_BankL));
@@ -242,7 +240,7 @@ void Cus428State::UserKnobChangedTo(eKno
 		if (verbose > 1)
 			printf("Knob BANK_R now %i", V);
 		if (V) {
-			if (aBank < 3) {
+			if (aBank < cBanks - 1) {
 				bool bInputMonitor = StateInputMonitor();
 				bool bSolo = LightIs(eL_Solo);
 				if (!bInputMonitor) {
@@ -265,9 +263,7 @@ void Cus428State::UserKnobChangedTo(eKno
 					}
 				}
 			}
-			LightSet(eL_BankL, (aBank == 0));
-			LightSet(eL_BankR, (aBank == cBanks - 1));
-			LightSend();
+			BankSend();
 		}
 		if (verbose > 1)
 			printf(" Light is %i\n", LightIs(eL_BankR));
@@ -602,16 +598,27 @@ void Cus428State::TransportSend()
 }
 
 
+// Bank switch lights stabilizer.
+void Cus428State::BankSend()
+{
+	LightSet(eL_BankL, (aBank == 0));
+	LightSet(eL_BankR, (aBank == cBanks - 1));
+	LightSend();
+}
+
+
 // Reset MMC state.
 void Cus428State::MmcReset()
 {
 	W0 = 0;
+	aBank = 0;
 	aWheel = aWheel_L = aWheel_R = 0;
 	aWheelSpeed = 0;
 	bSetLocate = false;
 	bSetRecord = false;
 	uTransport = 0;
 
+	BankSend();
 	TransportSend();
 	LocateSend();
 }
diff -dupr us428control-0.4.5-5/Cus428State.h us428control-0.4.6-1/Cus428State.h
--- us428control-0.4.5-5/Cus428State.h	2007-02-14 18:15:55.000000000 +0000
+++ us428control-0.4.6-1/Cus428State.h	2007-02-16 00:23:56.000000000 +0000
@@ -131,6 +131,8 @@ public:
 	void TransportToggle(unsigned char T);
 	void TransportSet(unsigned char T, bool V);
 	void TransportSend();
+	// Bank switch stabilizer.
+	void BankSend();
 	// Process masked-write sub-command.
 	void MaskedWrite(unsigned char *data);
 	// Reset internal MMC state.

