public void run() {
		int seconds = 0;
		while(connected) {
			if(pausing) {
				seconds = 0;
				acceptServerInput();
				synchronized(this) {
					notifyAll();
				}				
			}
			try {
				Thread.sleep(1000);
			}
			catch(InterruptedException e) {
				// nah
			}
			seconds = (seconds + 1) % idleTimeout;
			if(seconds == 0) {
				if(idle) {
					Fluid.log("Source: Idle timeout (" + idleTimeout + " seconds)");
					if(pause != null) {
						try {
							setInputStream(new FileInputStream(pause));
						}
						catch(IOException e) {
							Fluid.error(e);
							break;
						}
					}
					pausing = true;
					try {
						if(sourceSocket != null)
							sourceSocket.close();
					}
					catch(IOException e) {
						// nah
					}
				}
				else {
					idle = true;
				}
			}
		}
	}