public void spawnEngineReceivers(int timeout) {
        engines.clear();
        
        // Convert to milliseconds
        timeout *= 1000;
        
        ThreadGroup engineListeners = new ThreadGroup("Engine Echo Listeners");
        for(int i = 0; i < PLACES_TO_SCAN.length; i++)
            new Thread(engineListeners, new EngineReceiver(PLACES_TO_SCAN[i], engines, timeout), "EngineReceiver for " + PLACES_TO_SCAN[i]).start();
        
        try {
            // We want to tie up the thread until everything's done.
            while(engineListeners.activeCount() > 0) Thread.sleep(250);
        } catch(InterruptedException ie) {
            System.out.println("EngineFinder:"+ie);
        }
    }