public void run() {
		try {
			addPossibleHostsFromConfig();

			// at the beginning, sleep 5 sec
			Thread.sleep(5 * 1000);
		} catch (Exception e) {
		}

		while (!MainDialog.requestedShutdown) {
			try {
				HTTPMulticastHost host = hosts.take();

				if (host != null) {
					synchronized (this) {
						currentlyAskedHosts.add(host);
						hostFindExecutor.execute(new HostFindJob(host, this));
					}
				}

				saveWorkingHostsToConfigIfNecessary();

			} catch (InterruptedException e) {
			} catch (java.lang.IllegalMonitorStateException e) {
			}

		}
	}