public static boolean unequipItem(Hero owner, Item item) {
		if (owner != null && item != null && isItemEquipped(owner, item)) {
			// item is equipped -> remove it
			// set owner to null for item abilities
			// so that a unit cannot use them anymore
			owner.getEquipment().remove(item);
			Set<Ability> abilities = item.getAbilities();
			if (abilities != null) {
				for (Ability ability : abilities) {
					// create event for gameEventController
					Map<GameEventParameter, Object> eventParams = new HashMap<GameEventParameter, Object>();
					eventParams.put(GameEventParameter.TRIGGERING_UNIT, owner);
					eventParams.put(GameEventParameter.TRIGGERING_ABILITY, ability);
					GameEventHandler.INSTANCE.createAndDispatchEvent(GameEventType.UNIT_REMOVE_ABILITY, owner, eventParams);

					ability.setOwner(null);
					if (LOGGER.isDebugEnabled())
						LOGGER.debug("Successfully removed itemability '" + ability + "' from hero '" + owner + "'");
				}
			}

			// add item to inventory
			owner.getInventory().add(item);

			if (LOGGER.isDebugEnabled())
				LOGGER.debug("Successfully removed equipment item '" + item + "' from hero " + owner);

			return true;
		}

		return false;
	}