 				stage.removeEventListener(KeyboardEvent.KEY_UP, onKeyUp, false);
 
 				// Stops listening to device addition events
-				gameInput.removeEventListener(GameInputEvent.DEVICE_ADDED, onGameInputDeviceAdded);
-                gameInput.removeEventListener(GameInputEvent.DEVICE_REMOVED, onGameInputDeviceRemoved);
+				if (gameInput != null) {
+					gameInput.removeEventListener(GameInputEvent.DEVICE_ADDED, onGameInputDeviceAdded);
+					gameInput.removeEventListener(GameInputEvent.DEVICE_REMOVED, onGameInputDeviceRemoved);
+				}
 
 				_isStarted = false;
 			}


		public function UniversalBinder(__stage:Stage) {
			stage = __stage;
			gameInput = new GameInput();
			bindings = new Vector.<Binding>();
			commandsActivations = {};


				stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
				
				// Starts listening to device addition events
				if (gameInput != null) {
					gameInput.addEventListener(GameInputEvent.DEVICE_ADDED, onGameInputDeviceAdded);
					gameInput.addEventListener(GameInputEvent.DEVICE_REMOVED, onGameInputDeviceRemoved);
				}
				

				_isStarted = true;
