diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
index 1e8ea3f6200f10b8a0cd92928b79be9156d26b13..61007aa8a96cb8ea7e2eb4af75264b49570c8ab8 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
@@ -19,6 +19,8 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.zip.GZIPOutputStream;
 
+import javax.net.ssl.SSLException;
+
 import net.i2p.client.streaming.I2PSocket;
 import net.i2p.I2PAppContext;
 import net.i2p.data.ByteArray;
@@ -295,6 +297,13 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
                 s.run(); // same thread
                 if (_log.shouldLog(Log.INFO))
                     _log.info("After pumping the compressed response: " + compressedOut.getTotalRead() + "/" + compressedOut.getTotalCompressed());
+            } catch (SSLException she) {
+                _log.error("SSL error", she);
+                try {
+                    if (browserout == null)
+                        browserout = _browser.getOutputStream();
+                    browserout.write(ERR_UNAVAILABLE);
+                } catch (IOException ioe) {}
             } catch (IOException ioe) {
                 if (_log.shouldLog(Log.WARN))
                     _log.warn("error compressing", ioe);
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java
index 8822779fced5901dc92c10d454144f3b9a8771d1..c3bfea5e7bf37b2548c4f3abba857d4b10e62655 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java
@@ -12,6 +12,8 @@ import java.net.Socket;
 import java.net.SocketException;
 import java.util.List;
 
+import javax.net.ssl.SSLException;
+
 import net.i2p.I2PAppContext;
 import net.i2p.client.streaming.I2PSocket;
 import net.i2p.data.ByteArray;
@@ -199,6 +201,8 @@ public class I2PTunnelRunner extends I2PAppThread implements I2PSocket.SocketErr
         } catch (InterruptedException ex) {
             if (_log.shouldLog(Log.ERROR))
                 _log.error("Interrupted", ex);
+        } catch (SSLException she) {
+            _log.error("SSL error", she);
         } catch (IOException ex) {
             if (_log.shouldLog(Log.DEBUG))
                 _log.debug("Error forwarding", ex);
diff --git a/core/java/src/net/i2p/util/I2PSSLSocketFactory.java b/core/java/src/net/i2p/util/I2PSSLSocketFactory.java
index 0751cdc2885bada6b35bf39dc186826c7fb48239..f7f5b260644340e1d89c14f1e942170cc7ef4544 100644
--- a/core/java/src/net/i2p/util/I2PSSLSocketFactory.java
+++ b/core/java/src/net/i2p/util/I2PSSLSocketFactory.java
@@ -54,7 +54,7 @@ public class I2PSSLSocketFactory {
      *  Loads certs from
      *  the ~/.i2p/certificates/ and $I2P/certificates/ directories.
      */
-    private SSLSocketFactory initSSLContext(I2PAppContext context, boolean loadSystemCerts, String relativeCertPath)
+    private static SSLSocketFactory initSSLContext(I2PAppContext context, boolean loadSystemCerts, String relativeCertPath)
                                throws GeneralSecurityException {
         Log log = context.logManager().getLog(I2PSSLSocketFactory.class);
         KeyStore ks;