Index: src/main/java/geniusweb/runserver/PartyConnection.java
===================================================================
--- src/main/java/geniusweb/runserver/PartyConnection.java	(revision 3)
+++ src/main/java/geniusweb/runserver/PartyConnection.java	(revision 4)
@@ -33,6 +33,7 @@
 
 /**
- * A websocket based {@link ConnectionWithParty}. Must be public so that it can
- * be accessed as ClientEndpoint by apache tomcat
+ * A websocket based {@link ConnectionWithParty}. it contains a websocket
+ * connection to a party that runs on a runserver. Must be public so that it can
+ * be accessed as ClientEndpoint by apache tomcat. This is internally used.
  */
 @ClientEndpoint
@@ -102,7 +103,8 @@
 				.openConnection();
 		// if this throws, the IOException seems to contain the "retry later"
-		// message
-		// already
-		conn.setRequestMethod("GET"); // TODO timeout
+		// message already
+		conn.setRequestMethod("GET");
+		conn.setReadTimeout(20000);
+		conn.connect();
 		BufferedReader rd;
 		try {
@@ -110,4 +112,8 @@
 					new InputStreamReader(conn.getInputStream()));
 		} catch (IOException e) {
+			if (conn.getErrorStream() == null) {
+				throw new IOException("Failed to connect " + reference
+						+ ", no server error message", e);
+			}
 			// read the detail message from the error stream
 			rd = new BufferedReader(
Index: src/main/java/geniusweb/runserver/RunNego.java
===================================================================
--- src/main/java/geniusweb/runserver/RunNego.java	(revision 3)
+++ src/main/java/geniusweb/runserver/RunNego.java	(revision 4)
@@ -66,4 +66,7 @@
 				RunningNegotiationsRepo.instance(), log);
 		RunningNegotiationsRepo.instance().put(session);
+		// set content type to prevent some browsers
+		// trying to parse this (eg as XML)
+		response.setContentType("application/json");
 		response.getWriter().append(session.getID());
 	}
Index: src/main/webapp/index.jsp
===================================================================
--- src/main/webapp/index.jsp	(revision 3)
+++ src/main/webapp/index.jsp	(revision 4)
@@ -1,5 +1,5 @@
 <html>
 <body>
-<h1>Genius 2 Run Server</h1>
+<h1>GeniusWeb Run Server</h1>
 
 <a href="newsession.xhtml">new session</a>
@@ -10,5 +10,6 @@
 <br>
 <a href="log">view logs</a>
-<br>
+<p>
+	For help and more info, please refer to the <a href="https://tracinsy.ewi.tudelft.nl/pubtrac/GeniusWebRunServer"> run server page</a>. 
 </body>
 </html>
Index: src/main/webapp/newsession.xhtml
===================================================================
--- src/main/webapp/newsession.xhtml	(revision 3)
+++ src/main/webapp/newsession.xhtml	(revision 4)
@@ -40,8 +40,9 @@
 	<div id="box" class="box">
 		<br /> <b>Participants</b> <br /> Parties Server: <input type="url"
-			name="url" id="partiesserverurl" value="localhost:8080/partiesserver-1.0.0"
+			name="url" id="partiesserverurl"
+			value="localhost:8080/partiesserver-1.0.0"
 			pattern=".*:[0-9]+/partiesserver" size="30"
-			onchange="connectParties()"> </input> <br />
-		<br /> <b>Edit next party</b> <br /> Party: <select id="partyselection">
+			onchange="connectParties()"> </input> <br /> <br /> <b>Edit
+			next party</b> <br /> Party: <select id="partyselection">
 		</select> <br /> Profile: <select id="profileselection">
 		</select> <br />
@@ -71,4 +72,7 @@
 
 	<div id="started" style="visibility: hidden">
+		Your session started. Waiting for the results. <br />
+	</div>
+	<div id="results" style="visibility: hidden">
 		Your session started.<br /> <a href="" id="logref">view the log
 			file</a> <br /> <a href="" id="plotref">render a utilities plot</a>.
@@ -78,4 +82,5 @@
 
 <script type="application/javascript">
+	
 	
 	
@@ -310,10 +315,12 @@
 	        if (this.readyState == 4) {
 	        	if (this.status == 200) {
+	        		var logurl="log/"+this.responseText+".json";
 	        		document.getElementById("startbutton").disabled=true;
-	        		document.getElementById("logref").href="log/"+this.responseText+".json";
+	        		document.getElementById("logref").href=logurl;
 	        		document.getElementById("plotref").href="plotlog.xhtml?id="+this.responseText;
+	        		document.getElementById("started").setAttribute("style","");
 	        		
-	        		sometimeWhen(function() { x=x+1; return x==3 },
-	        				function() { document.getElementById("started").setAttribute("style",""); });
+	        		sometimeWhen(function() { return urlExists(logurl) },
+	        				function() { document.getElementById("results").setAttribute("style",""); });
 
 	        	}
@@ -327,4 +334,18 @@
 	}
 
+
+	/**
+	@return true iff the URL exists.
+	*/
+	function urlExists(urlToFile) {
+		// Warning. Synchronous XMLHttpRequest on the main thread is 
+		// deprecated because of its detrimental effects to the end user’s
+		// experience. For more help http://xhr.spec.whatwg.org/
+	    var xhr = new XMLHttpRequest();
+	    xhr.open('HEAD', urlToFile, false);
+	    xhr.send();
+	     
+		return (xhr.status == "200") 
+	}
 	
 	/**
@@ -361,4 +382,5 @@
 
 
+
 </script>
 
Index: src/main/webapp/plotlog.xhtml
===================================================================
--- src/main/webapp/plotlog.xhtml	(revision 3)
+++ src/main/webapp/plotlog.xhtml	(revision 4)
@@ -23,5 +23,5 @@
 	<div id="progress">Waiting for log file name</div>
 	<br />
-	<div style="width: 75%;">
+	<div style="width: 100%;">
 		<canvas id="canvas"></canvas>
 	</div>
