diff --git a/installer/resources/certificates/reseed.info.crt b/installer/resources/certificates/reseed.info.crt
index 31302c52bd6b87aeca9f40071cda8bfafbba7d6f..bca5984785c3289ce7694abe5a04d71c43839f52 100644
--- a/installer/resources/certificates/reseed.info.crt
+++ b/installer/resources/certificates/reseed.info.crt
@@ -1,20 +1,20 @@
 -----BEGIN CERTIFICATE-----
-MIIDRDCCAiwCCQDCm/Zrmali9zANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJB
-VTETMBEGA1UECBMKU29tZS1TdGF0ZTELMAkGA1UEBxMCSEgxDDAKBgNVBAoTA0ky
-UDEPMA0GA1UECxMGcmVzZWVkMRQwEgYDVQQDEwtyZXNlZWQuaW5mbzAeFw0xMjEw
-MjcxODU3NDNaFw0xNjEyMDUxODU3NDNaMGQxCzAJBgNVBAYTAkFVMRMwEQYDVQQI
-EwpTb21lLVN0YXRlMQswCQYDVQQHEwJISDEMMAoGA1UEChMDSTJQMQ8wDQYDVQQL
-EwZyZXNlZWQxFDASBgNVBAMTC3Jlc2VlZC5pbmZvMIIBIjANBgkqhkiG9w0BAQEF
-AAOCAQ8AMIIBCgKCAQEAt9nz0iUvjdX4Hkhfk0FbBOeEP4i/FG3V4VrEdQfcviSF
-XgzGYeRtGsvrFWP/5+6bcGnOkIy/jrKJfij3AjKJh8gTzqiNNNnV8VcHwFSNp+hZ
-D4BM+UHPACV1Pjd3HQe6f0+LvcTs3HQgIkNkwUyqRuXOm/5Mk6SWSu1740aSwHCj
-Kk0x1FByzI0YBvXCPX6TVk6sJqKkQyLzK0CSGSeqUq8GvGCq+jT9k62Su7ooxCwi
-GzxaFjMdVYxuI8cuT5Cni+SUw1Ia8vhESnIy6slwzk37xNI80VuMvRT6rD2KcXDH
-mK7ml1qL0rJWoF5AE+x/nen4V41mouv1W9rk3wTlTQIDAQABMA0GCSqGSIb3DQEB
-BQUAA4IBAQAr6RBviBDW4bnPDTcdtstTDdaYX9yzoh+zzeGB0dUR26GKoOjpSItb
-B9nrsW1eJ2wbblfGBUoXhcmNByKHXXHejMhmurHjdei2BuLbTsknN8DPKXu5UF9z
-cg4cKQkxgzXOcNYlaF4+sfwFXDHJ4we/8vduVgkyo8R66543/Sh/nIMvq2slRT4w
-wIBOVcMb2XxlbdwHW9XALAz9sto+4GH9GAC24f8ngluOpHijMnOOIo4dHibQ5hM9
-KcDpHezP0ugMTAxS2NmtVahwAqa2IjpqR7aEQ2wLvxQzDqrXo93L93+b2FKRUQXH
-Duud/n/w0kVV3DaIGikOsJayoanR+9HD
+MIIDMjCCAhoCCQCGQa3FtL3BhTANBgkqhkiG9w0BAQUFADBbMQswCQYDVQQGEwJB
+VTETMBEGA1UECBMKU29tZS1TdGF0ZTEhMB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0
+cyBQdHkgTHRkMRQwEgYDVQQDEwt3d3cuNjltZS5kZTAeFw0xMjExMDIxMjE4NTBa
+Fw0xMzExMDIxMjE4NTBaMFsxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0
+YXRlMSEwHwYDVQQKExhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQxFDASBgNVBAMT
+C3d3dy42OW1lLmRlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3g0m
+5bhA2m3xjnJOYNDRtG5BdnHai8rybjjcTYSDEDX5OxV3Jjqtk1LLbf1fZx+s+EKw
+6/+g+TLRhjE5d06puRmpyxpywllWT1OUK74QWYKCpmDY4ez2yTC+iSG9RDDNVzQf
+24d2/tzyAOgETUBh3CP1HEdaLaZC+uSI+JlafIeGG5bAGYcCXTB7qUbvAkMsak/N
+w18h/Sa2xa9rE1EYEb8AqpJYM3dzLlo1PdoWEq6G9h/N+3W0g/qAVGLfSZMSUFZ0
+Uc77i3oFgk2YMdnP7+sa3MImscu0rV+/UptuvuktYld9KScGMHJsUYh1q77ClEAZ
+KFJBKzivpSjSRcmULQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQAVCMB81jxN9kNv
+rKGaI2Vlt82Wj1d9LmxAyTQC1f1lGwVgFBrpIkwhHzmudyEYdmag02QP9DLcQ4I/
+LNe5PdFL6Mzfl3QNoYXeaJeiAZhwkQbSM2DYEN9nGaEU/y2LJWvfAH75vcun+oIl
+7CvntdQzdZYmtcK0NgjCwY/CD97DyZRkLNjJdkKUvpf1lO4Egf+NheSmzVLo5/5u
+/DwTqSfPuyhfb4L2pA1e6M9gLzyAPmP4nx+gToHzY54CB/kyuYk5JOY4IJaGAW3F
+YBSYr8/pwXWISCrQi6afB29Ng8WlpWiNqj/yC+X5K9eTihlh2Mun0k/cWgg6JYAm
+tt0UhRK0
 -----END CERTIFICATE-----
diff --git a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java
index 98a3127e4147d37d271dd8e7bb45198cbe401d5c..6c9d2c0ce5c01c124c0b3c758847da94692ce0d0 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java
@@ -692,7 +692,8 @@ class EventPumper implements Runnable {
                     }
                 } else {
                     // Nothing more to write
-                    key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE);
+		    if (key.isValid())
+                    	key.interestOps(key.interestOps() & ~SelectionKey.OP_WRITE);
                     break;
                 }
             }
diff --git a/router/java/src/net/i2p/router/tunnel/pool/BuildRequestor.java b/router/java/src/net/i2p/router/tunnel/pool/BuildRequestor.java
index 06bbaf49055139bb857ed081ece1f36a66060ee4..80bd1803afe36097e3dc6a8f9410df16a070b240 100644
--- a/router/java/src/net/i2p/router/tunnel/pool/BuildRequestor.java
+++ b/router/java/src/net/i2p/router/tunnel/pool/BuildRequestor.java
@@ -160,7 +160,7 @@ abstract class BuildRequestor {
         if (cfg.isInbound()) {
             if (log.shouldLog(Log.INFO))
                 log.info("Sending the tunnel build request " + msg.getUniqueId() + " out the tunnel " + pairedTunnel + " to " 
-                          + cfg.getPeer(0).toBase64() + " for " + cfg + " waiting for the reply of "
+                          + cfg.getPeer(0) + " for " + cfg + " waiting for the reply of "
                           + cfg.getReplyMessageId());
             // send it out a tunnel targetting the first hop
             // TODO - would be nice to have a TunnelBuildFirstHopFailJob queued if the
@@ -168,7 +168,7 @@ abstract class BuildRequestor {
             ctx.tunnelDispatcher().dispatchOutbound(msg, pairedTunnel.getSendTunnelId(0), cfg.getPeer(0));
         } else {
             if (log.shouldLog(Log.INFO))
-                log.info("Sending the tunnel build request directly to " + cfg.getPeer(1).toBase64() 
+                log.info("Sending the tunnel build request directly to " + cfg.getPeer(1)
                           + " for " + cfg + " waiting for the reply of " + cfg.getReplyMessageId() 
                           + " with msgId=" + msg.getUniqueId());
             // send it directly to the first hop
@@ -183,8 +183,8 @@ abstract class BuildRequestor {
             outMsg.setPriority(PRIORITY);
             RouterInfo peer = ctx.netDb().lookupRouterInfoLocally(cfg.getPeer(1));
             if (peer == null) {
-                if (log.shouldLog(Log.ERROR))
-                    log.error("Could not find the next hop to send the outbound request to: " + cfg);
+                if (log.shouldLog(Log.WARN))
+                    log.warn("Could not find the next hop to send the outbound request to: " + cfg);
                 exec.buildComplete(cfg, pool);
                 return;
             }
@@ -300,7 +300,7 @@ abstract class BuildRequestor {
                 if (peerInfo == null) {
                     if (log.shouldLog(Log.WARN))
                         log.warn("Peer selected for hop " + i + "/" + hop + " was not found locally: " 
-                                  + peer.toBase64() + " for " + cfg);
+                                  + peer + " for " + cfg);
                     return null;
                 } else {
                     key = peerInfo.getIdentity().getPublicKey();
@@ -343,9 +343,9 @@ abstract class BuildRequestor {
      *  Can't do this for inbound tunnels since the msg goes out an expl. tunnel.
      */
     private static class TunnelBuildFirstHopFailJob extends JobImpl {
-        final TunnelPool _pool;
-        final PooledTunnelCreatorConfig _cfg;
-        final BuildExecutor _exec;
+        private final TunnelPool _pool;
+        private final PooledTunnelCreatorConfig _cfg;
+        private final BuildExecutor _exec;
         private TunnelBuildFirstHopFailJob(RouterContext ctx, TunnelPool pool, PooledTunnelCreatorConfig cfg, BuildExecutor exec) {
             super(ctx);
             _cfg = cfg;