 					mode = newMode;
 					if (MODE_DELAY == mode)
 						viewMode = VIEW_MODE_DELAY;
+					if (listOpen == LIST_MODES) {
+						listOpen = LIST_NONE;
+						makeUI();
+					}
 				}, "Enter "+MODE_NAMES[newMode]+" mode", HOTKEYS[newMode]).setParam(newMode).setSelected(newMode == mode));
 			}
 			

			var zoomButton:MenuButton = new GraphicButton(50, 10, _zoom_sprite, function openList():void {
				listOpen = LIST_ZOOM;
				makeUI();
			}, "Display zoom controls", new Key("PLUS"));
			upperLayer.add(zoomButton);
		}
		

					
					FlxG.camera.scroll.x -= (FlxG.width / 2) / zoom;
					FlxG.camera.scroll.y -= (FlxG.height / 2) / zoom;
					
					if (listOpen == LIST_ZOOM) {
						listOpen = LIST_NONE;
						makeUI();
					}
				}, "Set zoom to "+Math.pow(2, -zoomLevel), HOTKEYS[zoomLevel]).setParam(zoomLevel).setSelected(Math.pow(2, -zoomLevel) == zoom));
			
			var zoomList:ButtonList = new ButtonList(50, 10, zoomButtons, function onListClose():void {
