private void doSearchInternal(final String newSearch) {
		try {
			// Create a URL for the desired page, and create objects for the searchResults
			URL url = this.urlCreator.queryGeocodingURL(newSearch);
			List<LocationGPSObject> locations = xmlParser.processGeocodingSearch(url);
			this.resultPanel.addLocations(locations);
			this.setPreferredWidth();
		} catch (Exception e) {
			Log.getLogger().log(Level.SEVERE, "failed to search for \"" + newSearch + "\"", e);
		}


		Runnable runnable = new Runnable() {
			public void run() {
				try {
					DefaultComboBoxModel comboBoxModel = (DefaultComboBoxModel)searchBox.getModel();
					comboBoxModel.removeElement(newSearch);
					comboBoxModel.addElement(newSearch);
				} finally {
					searchBox.setCursor(Cursor.getDefaultCursor());
					searching = false;
					searchBox.setEnabled(true);
				}
			}
		};

		SwingUtilities.invokeLater(runnable);
	}