public static void unequip(final MapleClient c, final short src, final short dst) {
	Equip source = (Equip) c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem(src);
	Equip target = (Equip) c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem(dst);

	if (dst < 0 || source == null) {
	    return;
	}
	if (target != null && src <= 0) { // do not allow switching with equip
	    c.getSession().write(MaplePacketCreator.getInventoryFull());
	    return;
	}
	c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).removeSlot(src);
	if (target != null) {
	    c.getPlayer().getInventory(MapleInventoryType.EQUIP).removeSlot(dst);
	}
	source.setPosition(dst);
	c.getPlayer().getInventory(MapleInventoryType.EQUIP).addFromDB(source);
	if (target != null) {
	    target.setPosition(src);
	    c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).addFromDB(target);
	}

	if (c.getPlayer().getBuffedValue(MapleBuffStat.BOOSTER) != null && InventoryConstants.isWeapon(source.getItemId())) {
	    c.getPlayer().cancelBuffStats(MapleBuffStat.BOOSTER);
	}

	c.getSession().write(MaplePacketCreator.moveInventoryItem(MapleInventoryType.EQUIP, src, dst, (byte) 1));
	c.getPlayer().equipChanged();
    }