public final static void completeTrade(final MapleCharacter c) {
	final MapleTrade local = c.getTrade();
	final MapleTrade partner = local.getPartner();

	if (partner == null || local.locked) {
	    return;
	}
	local.locked = true; // Locking the trade
	partner.getChr().getClient().getSession().write(MaplePacketCreator.getTradeConfirmation());

	partner.exchangeItems = local.items; // Copy this to partner's trade since it's alreadt accepted
	partner.exchangeMeso = local.meso; // Copy this to partner's trade since it's alreadt accepted

	if (partner.isLocked()) { // Both locked
	    if (!local.check() || !partner.check()) { // Check for full inventories
		// NOTE : IF accepted = other party but inventory is full, the item is lost.
		partner.cancel();
		local.cancel();

		c.getClient().getSession().write(MaplePacketCreator.serverNotice(5, "There is not enough inventory space to complete the trade."));
		partner.getChr().getClient().getSession().write(MaplePacketCreator.serverNotice(5, "There is not enough inventory space to complete the trade."));
	    } else {
		local.CompleteTrade();
		partner.CompleteTrade();
	    }
	    partner.getChr().setTrade(null);
	    c.setTrade(null);
	}
    }