public void updateAuctionList() {
		new Thread() {
			@Override
			public void run() {
				if (userId != null && userProfile != null) {
					synchronized (activeRequest) {
						activeRequest.setSenderId(userId);
						activeRequest.setSessionToken(userProfile.getSessionToken());
						
						boolean success = Comms.sendMessage(activeRequest);
				
						if (success) {
							// Receive response and handle
							try {
								ViewResponse re = (ViewResponse) Comms.receiveMessage();
								handle(re);
							} catch (ClassCastException ex) {
								Alerter.getHandler().severe("Auction Listing Failure",
												"Response from server was malformed. Please try again.");
							}
						}

						// Update GUI
						SwingUtilities.invokeLater(new Runnable() {
							@Override
							public void run() {
								auctionList.removeAll();
								for (final Integer i : currentAuctions.keySet()) {
									ListingPanel l = new ListingPanel(userId, currentAuctions.get(i));
									l.addMouseListener(new MouseAdapter() {
										@Override
										public void mousePressed(MouseEvent e) {
											showItem(i);
										}
									});
									auctionList.add(l);
								}
								auctionList.revalidate();
								auctionList.repaint();
							}
						});
					}
				}
			}
		}.start();
	}