diff --git a/apps/admin/java/src/net/i2p/router/admin/AdminRunner.java b/apps/admin/java/src/net/i2p/router/admin/AdminRunner.java
index d5c63c60d33e864c81a13d61f3feab242623df22..af9eeb6cbd558d6c98e91ee16342c18277b61c42 100644
--- a/apps/admin/java/src/net/i2p/router/admin/AdminRunner.java
+++ b/apps/admin/java/src/net/i2p/router/admin/AdminRunner.java
@@ -11,9 +11,10 @@ import java.util.Iterator;
 import java.util.Set;
 
 import net.i2p.data.Hash;
-import net.i2p.data.DataHelper
+import net.i2p.data.DataHelper;
 import net.i2p.router.Router;
 import net.i2p.router.RouterContext;
+import net.i2p.router.web.StatsGenerator;
 import net.i2p.util.I2PThread;
 import net.i2p.util.Log;
 
@@ -49,7 +50,7 @@ class AdminRunner implements Runnable {
         } else if ( (command.indexOf("routerStats.html") >= 0) || (command.indexOf("oldstats.jsp") >= 0) ) {
             try {
                 out.write(DataHelper.getASCII("HTTP/1.1 200 OK\nConnection: close\nCache-control: no-cache\nContent-type: text/html\n\n"));
-                _generator.generateStatsPage(new OutputStreamWriter(out));
+                _generator.generateStatsPage(new OutputStreamWriter(out), true);
                 out.close();
             } catch (IOException ioe) {
                 if (_log.shouldLog(Log.WARN))
@@ -63,7 +64,8 @@ class AdminRunner implements Runnable {
         } else if (true || command.indexOf("routerConsole.html") > 0) {
             try {
                 out.write(DataHelper.getASCII("HTTP/1.1 200 OK\nConnection: close\nCache-control: no-cache\nContent-type: text/html\n\n"));
-                _context.router().renderStatusHTML(new OutputStreamWriter(out));
+                // TODO Not technically the same as router().renderStatusHTML() was
+                _context.routerAppManager().renderStatusHTML(new OutputStreamWriter(out));
                 out.close();
             } catch (IOException ioe) {
                 if (_log.shouldLog(Log.WARN))
diff --git a/apps/sam/java/test/net/i2p/sam/TestCreateSessionDatagram.java b/apps/sam/java/test/net/i2p/sam/TestCreateSessionDatagram.java
index 612a0424d3d6d5dac4ed7896e00462dbf2227264..a1b903f2ac64a299abb9f878ba89a8f63a60b45f 100644
--- a/apps/sam/java/test/net/i2p/sam/TestCreateSessionDatagram.java
+++ b/apps/sam/java/test/net/i2p/sam/TestCreateSessionDatagram.java
@@ -5,6 +5,7 @@ import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.Socket;
 
+import net.i2p.data.DataHelper;
 import net.i2p.util.Log;
 
 public class TestCreateSessionDatagram {
diff --git a/apps/sam/java/test/net/i2p/sam/TestCreateSessionRaw.java b/apps/sam/java/test/net/i2p/sam/TestCreateSessionRaw.java
index 7ce07162318d580edd17ac6822ddf009eb2b590b..36af253d7fddbd8d4d9cffdbf3a0e0b043e46e36 100644
--- a/apps/sam/java/test/net/i2p/sam/TestCreateSessionRaw.java
+++ b/apps/sam/java/test/net/i2p/sam/TestCreateSessionRaw.java
@@ -5,6 +5,7 @@ import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.Socket;
 
+import net.i2p.data.DataHelper;
 import net.i2p.util.Clock;
 import net.i2p.util.Log;
 
diff --git a/apps/sam/java/test/net/i2p/sam/TestDatagramTransfer.java b/apps/sam/java/test/net/i2p/sam/TestDatagramTransfer.java
index 52c0e2a105282718edf29aab38f15bc32bc17642..1bb01b280372e6e6f7447fe381df90dba6a6c039 100644
--- a/apps/sam/java/test/net/i2p/sam/TestDatagramTransfer.java
+++ b/apps/sam/java/test/net/i2p/sam/TestDatagramTransfer.java
@@ -37,11 +37,8 @@ public class TestDatagramTransfer {
             line = reader.readLine();
             _log.info("Response from the lookup for ME: " + line);
             _log.debug("The above should be a NAMING REPLY");
-            
-            StringTokenizer tok = new StringTokenizer(line);
-            String maj = tok.nextToken();
-            String min = tok.nextToken();
-            Properties props = SAMUtils.parseParams(tok);
+
+            Properties props = SAMUtils.parseParams(line);
             String value = props.getProperty("VALUE");
             if (value == null) {
                 _log.error("No value for ME found!  [" + line + "]");
@@ -53,10 +50,7 @@ public class TestDatagramTransfer {
             String send = "DATAGRAM SEND DESTINATION=" + value + " SIZE=3\nYo!";
             out.write(DataHelper.getASCII(send));
             line = reader.readLine();
-            tok = new StringTokenizer(line);
-            maj = tok.nextToken();
-            min = tok.nextToken();
-            props = SAMUtils.parseParams(tok);
+            props = SAMUtils.parseParams(line);
             String size = props.getProperty("SIZE");
             String from = props.getProperty("DESTINATION");
             if ( (value == null) || (size == null) ||
diff --git a/apps/sam/java/test/net/i2p/sam/TestDest.java b/apps/sam/java/test/net/i2p/sam/TestDest.java
index 2662b583549530310c262ce564bf2cd65c4a1784..9a2cdec63865b0d11a254513848ada80e88365ac 100644
--- a/apps/sam/java/test/net/i2p/sam/TestDest.java
+++ b/apps/sam/java/test/net/i2p/sam/TestDest.java
@@ -5,6 +5,7 @@ import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.Socket;
 
+import net.i2p.data.DataHelper;
 import net.i2p.util.Log;
 
 public class TestDest {
diff --git a/apps/sam/java/test/net/i2p/sam/TestNaming.java b/apps/sam/java/test/net/i2p/sam/TestNaming.java
index a926b828b04c2f26d5436a3b8cb8524e3b7b9613..79d889a7894ccede70e66ced82ff4dbd409c39d8 100644
--- a/apps/sam/java/test/net/i2p/sam/TestNaming.java
+++ b/apps/sam/java/test/net/i2p/sam/TestNaming.java
@@ -5,6 +5,7 @@ import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.net.Socket;
 
+import net.i2p.data.DataHelper;
 import net.i2p.util.Log;
 
 public class TestNaming {
diff --git a/apps/sam/java/test/net/i2p/sam/TestRawTransfer.java b/apps/sam/java/test/net/i2p/sam/TestRawTransfer.java
index 584a7fb787f42f67254fdf9924b17348ba8943f5..0bff5939de0453fc985f02d2fc1df40850892661 100644
--- a/apps/sam/java/test/net/i2p/sam/TestRawTransfer.java
+++ b/apps/sam/java/test/net/i2p/sam/TestRawTransfer.java
@@ -7,6 +7,7 @@ import java.net.Socket;
 import java.util.Properties;
 import java.util.StringTokenizer;
 
+import net.i2p.data.DataHelper;
 import net.i2p.util.Log;
 
 public class TestRawTransfer {
@@ -36,11 +37,8 @@ public class TestRawTransfer {
             line = reader.readLine();
             _log.info("Response from the lookup for ME: " + line);
             _log.debug("The above should be a NAMING REPLY");
-            
-            StringTokenizer tok = new StringTokenizer(line);
-            String maj = tok.nextToken();
-            String min = tok.nextToken();
-            Properties props = SAMUtils.parseParams(tok);
+
+            Properties props = SAMUtils.parseParams(line);
             String value = props.getProperty("VALUE");
             if (value == null) {
                 _log.error("No value for ME found!  [" + line + "]");
@@ -53,10 +51,7 @@ public class TestRawTransfer {
             out.write(DataHelper.getASCII(send));
             line = reader.readLine();
             try {
-                tok = new StringTokenizer(line);
-                maj = tok.nextToken();
-                min = tok.nextToken();
-                props = SAMUtils.parseParams(tok);
+                props = SAMUtils.parseParams(line);
             } catch (Exception e) {
                 _log.error("Error parsing response line: [" + line + "]", e);
                 return;
diff --git a/apps/sam/java/test/net/i2p/sam/TestStreamTransfer.java b/apps/sam/java/test/net/i2p/sam/TestStreamTransfer.java
index 70188d2d2d5457ac1f752bff9dc22984e66e36bd..4071f1c1b0cee41c1789a5ff531af6a17fb044f0 100644
--- a/apps/sam/java/test/net/i2p/sam/TestStreamTransfer.java
+++ b/apps/sam/java/test/net/i2p/sam/TestStreamTransfer.java
@@ -75,10 +75,7 @@ public class TestStreamTransfer {
             req = "NAMING LOOKUP NAME=ME\n";
             out.write(DataHelper.getASCII(req));
             line = reader.readLine();
-            StringTokenizer tok = new StringTokenizer(line);
-            String maj = tok.nextToken();
-            String min = tok.nextToken();
-            Properties props = SAMUtils.parseParams(tok);
+            Properties props = SAMUtils.parseParams(line);
             String value = props.getProperty("VALUE");
             if (value == null) {
                 _log.error("No value for ME found!  [" + line + "]");
@@ -124,10 +121,9 @@ public class TestStreamTransfer {
         private void doRun() throws IOException, SAMException {
             String line = _reader.readLine();
             _log.debug("Read: " + line);
-            StringTokenizer tok = new StringTokenizer(line);
-            String maj = tok.nextToken();
-            String min = tok.nextToken();
-            Properties props = SAMUtils.parseParams(tok);
+            Properties props = SAMUtils.parseParams(line);
+            String maj = props.getProperty(SAMUtils.COMMAND);
+            String min = props.getProperty(SAMUtils.OPCODE);
             if ( ("STREAM".equals(maj)) && ("CONNECTED".equals(min)) ) {
                 String dest = props.getProperty("DESTINATION");
                 String id = props.getProperty("ID");
@@ -225,10 +221,7 @@ public class TestStreamTransfer {
             out.write(DataHelper.getASCII(req));
             line = reader.readLine();
             _log.info("Response to the stream connect from "+sessionName+" to Alice: " + line);
-            StringTokenizer tok = new StringTokenizer(line);
-            String maj = tok.nextToken();
-            String min = tok.nextToken();
-            Properties props = SAMUtils.parseParams(tok);
+            Properties props = SAMUtils.parseParams(line);
             _log.info("props = " + props);
             String result = props.getProperty("RESULT");
             if (!("OK".equals(result))) {
diff --git a/apps/sam/java/test/net/i2p/sam/TestSwarm.java b/apps/sam/java/test/net/i2p/sam/TestSwarm.java
index 8d96ed2f5966222a23a299988ae3c571791f2bfb..f9862b4678628b5f344f54c64627cf27e550a3e2 100644
--- a/apps/sam/java/test/net/i2p/sam/TestSwarm.java
+++ b/apps/sam/java/test/net/i2p/sam/TestSwarm.java
@@ -143,15 +143,15 @@ public class TestSwarm {
                 _samOut.write(DataHelper.getASCII("HELLO VERSION MIN=1.0 MAX=1.0\n"));
                 _samOut.flush();
                 _log.debug("Hello sent");
-                boolean ok = _eventHandler.waitForHelloReply();
-                _log.debug("Hello reply found: " + ok);
-                if (!ok) 
+                String serverVersion = _eventHandler.waitForHelloReply();
+                _log.debug("Hello reply found: " + serverVersion);
+                if (serverVersion == null)
                     throw new IOException("wtf, hello failed?");
                 String req = "SESSION CREATE STYLE=STREAM DESTINATION=" + _destFile + " " + _conOptions + "\n";
                 _samOut.write(DataHelper.getUTF8(req));
                 _samOut.flush();
                 _log.debug("Session create sent");
-                ok = _eventHandler.waitForSessionCreateReply();
+                boolean ok = _eventHandler.waitForSessionCreateReply();
                 _log.debug("Session create reply found: " + ok);
 
                 req = "NAMING LOOKUP NAME=ME\n";
diff --git a/core/java/src/net/i2p/client/naming/BlockfileNamingService.java b/core/java/src/net/i2p/client/naming/BlockfileNamingService.java
index 7a3eb8adc455f514d54257b414ec07d073b31867..0c1f6a6d7b69dc801d732e6cb4907643cd52dde7 100644
--- a/core/java/src/net/i2p/client/naming/BlockfileNamingService.java
+++ b/core/java/src/net/i2p/client/naming/BlockfileNamingService.java
@@ -1492,7 +1492,7 @@ public class BlockfileNamingService extends DummyNamingService {
                 rv = lookupAll2(hostname, lookupOptions, storedOptions);
             }
         }
-        // we sort the destinations in addDestionation(),
+        // we sort the destinations in addDestination(),
         // which is a lot easier than sorting them here
         return rv;
     }