@Override
		public void mouseReleased(MouseEvent me) {
			ArrayList<Card> sw;
			synchronized (_cards) {
				synchronized (_exchangers) {
					if (_up != null) {
						if (Card.class.isInstance(_up))
							_cards.add((Card)_up);
						else {
							_handObjects.add(_up);
						}
						_up = null;
					}
					Iterator<Map.Entry<Integer, Exchanger>> i = _exchangers.entrySet().iterator();
					TradeExchanger returned = null;
					while(i.hasNext()) {
						Integer e = i.next().getKey();
						//for (Integer e : _exchangers.keySet()) {
						Exchanger e1 = _exchangers.get(e);
						if (e1.getClass() == TradeExchanger.class)
							returned = ((TradeExchanger)e1).refreshcontents(i);
						else if ((e1.getID() > 800) && (e1.cardsIn(_cards).size()==0) && e1.done == true) {
							// _exchangers.remove(e);
							i.remove();
							repaint();
						}
						else {

							sw = e1.checkFull(_cards);

							if (sw != null) {
								e1.switchOut();
							}
						}
					}
					if(returned != null) {
						_exchangers.put(returned.getID(), returned);
					}
				}
			}
		}