* @param room
	 */
	private void editRoom(final Player player, final Room room) {
		// NOTE: by definition the player shouldn't be null in here
		final Client client = player.getClient();

		final String old_status = player.getStatus();

		if (room != null) {
			if (room.Edit_Ok) {
				room.Edit_Ok = false; // further edit access not permitted (only one person may access at a time)
			}
			else {
				// room is not editable, exit the editor
				abortEditor("Game> Room Editor - Error: room not editable (!Edit_Ok)", old_status, client);
				return;
			}

			player.setStatus(Constants.ST_EDIT); // set the 'edit' status flag
			player.setEditor(Editors.ROOM); // room editor

			final EditorData newEDD = new EditorData();

			// record prior player status
			newEDD.addObject("pstatus", old_status);

			// add room and it's constituent parts to the editor data
			newEDD.addObject("room", room);

			newEDD.addObject("name", room.getName());
			newEDD.addObject("desc", room.getDesc());
			newEDD.addObject("flags", EnumSet.copyOf(room.getFlags()));
			newEDD.addObject("location", room.getLocation());

			newEDD.addObject("zone", room.getZone());

			newEDD.addObject("x", room.getDimension("x"));
			newEDD.addObject("y", room.getDimension("y"));
			newEDD.addObject("z", room.getDimension("z"));

			// Exits
			for (final Exit exit : room.getExits()) {
				newEDD.addObject("e|" + exit.getName(), exit);
			}

			// Things
			for (final Thing thing : room.getThings()) {
				newEDD.addObject("t|" + thing.getName(), thing);
			}

			// Items
			for (final Item item : room.getItems()) {
				newEDD.addObject("i|" + item.getName(), item);
			}

			player.setEditorData(newEDD);
			
			//new RoomEditor(newEDD, client);

			op_roomedit("show", client); // print out the info page
		}
		else send("No such room!", client);
	}