 			_onActionValueChanged = new SimpleSignal();
 			_onDevicesChanged = new SimpleSignal();
 
+			gameInputDevices = new Vector.<GameInputDevice>();
+			gameInputDeviceIds = new Vector.<String>();
+			gameInputDeviceDefinitions = new Vector.<AutoGamepadInfo>();
+
 			start();
 		}
 

					}

					// Now that gameInputDeviceIds is correct, just create the list of references
					gameInputDevices = new Vector.<GameInputDevice>(gameInputDeviceIds.length);
					gameInputDeviceDefinitions = new Vector.<AutoGamepadInfo>(gameInputDeviceIds.length);
					for (i = 0; i < gameInputDeviceIds.length; i++) {
						gamepadPosition = newGamepadIds.indexOf(gameInputDeviceIds[i]);
						if (gamepadPosition < 0) {

					}
				} else {
					// Full refresh: create a new list of devices
					gameInputDevices.length = GameInput.numDevices;
					gameInputDeviceIds.length = GameInput.numDevices;
					gameInputDeviceDefinitions.length = GameInput.numDevices;
					for (i = 0; i < GameInput.numDevices; i++) {
						gameInputDevices[i] = GameInput.getDeviceAt(i);
						if (gameInputDevices[i] != null) {
							gameInputDeviceIds[i] = gameInputDevices[i].id;
							gameInputDeviceDefinitions[i] = findGamepadInfo(gameInputDevices[i]);
						} else {
							gameInputDeviceIds[i] = null;
							gameInputDeviceDefinitions[i] = null;
						}
					}
				}
