diff --git a/INSTALL-headless.txt b/INSTALL-headless.txt
index dcc5117e721a04a040cb1372ee55195cf96e55c9..c5044307c6180266e801a9eed50feae7410c075a 100644
--- a/INSTALL-headless.txt
+++ b/INSTALL-headless.txt
@@ -39,7 +39,10 @@ To uninstall I2P:
    rm -rf $I2PInstallDir ~/.i2p
 
 Supported JVMs:
-  Windows: Latest available from http://java.com/download (1.5+ supported)
-  Linux:   Latest available from http://java.com/download (1.5+ supported)
-  FreeBSD: 1.5-compatible (NIO required)
-  Other operating systems and JVMs: See https://trac.i2p2.de/wiki/java
+  All platforms: Java 1.6 or higher required; 1.7 or higher recommended
+  Windows: OpenJDK or Oracle from http://java.com/download
+  Linux:   OpenJDK or Oracle from http://java.com/download
+  FreeBSD: OpenJDK or Oracle from http://java.com/download
+  Raspberry Pi: Oracle 8 Early Access https://jdk8.java.net/download.html
+  PowerPC: IBM SDK 7 http://www.ibm.com/developerworks/java/jdk/linux/download.html
+  Other operating systems and JVMs: See https://trac.i2p2.de/wiki/java or https://geti2p.net/download
diff --git a/LICENSE.txt b/LICENSE.txt
index 00397d1f224eea7573479f853c9fc477adbbcb38..9ea9f333c60e5667cfac7fecd91257314da86019 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -177,7 +177,7 @@ Applications:
    By welterde.
    See licenses/LICENSE-GPLv2.txt
 
-   Jetty 7.6.14.v20131031:
+   Jetty 8.1.14.v20131031:
    See licenses/ABOUT-Jetty.html
    See licenses/NOTICE-Jetty.html
    See licenses/LICENSE-Apache2.0.txt
diff --git a/apps/jetty/apache-tomcat-deployer/README-i2p.txt b/apps/jetty/apache-tomcat-deployer/README-i2p.txt
index cc175380c09c583eda1acaf895f687188bc308c7..1f86ca34d5ec12ccb39f91fd728f11e3ed09984f 100644
--- a/apps/jetty/apache-tomcat-deployer/README-i2p.txt
+++ b/apps/jetty/apache-tomcat-deployer/README-i2p.txt
@@ -6,9 +6,21 @@ Retrieved from the file
 
 minus the following files and directores:
 
-build.xml
-deployer-howto.html
-images/*
-lib/catalina*
-LICENSE (see ../../../licenses/LICENSE-Apache2.0.txt, it's also inside every jar)
-RELEASE-NOTES
+	build.xml
+	deployer-howto.html
+	images/*
+	lib/catalina*
+	lib/jsp-api.jar (see below)
+	lib/servlet-api.jar (see below)
+	LICENSE (see ../../../licenses/LICENSE-Apache2.0.txt, it's also inside every jar)
+	RELEASE-NOTES
+
+
+We could use the following API jars from Apache Tomcat 7.x, supporting Servlet 3.0 and JSP 2.2,
+that are required for Jetty 8, but we just bundle the ones from Jetty 8 instead:
+
+	lib/jsp-api.jar
+	lib/servlet-api.jar
+
+For more info:
+http://tomcat.apache.org/whichversion.html
diff --git a/apps/jetty/apache-tomcat-deployer/lib/jsp-api.jar b/apps/jetty/apache-tomcat-deployer/lib/jsp-api.jar
deleted file mode 100644
index a4d236913f4a861e41e5cab8a2b1d46d319ee805..0000000000000000000000000000000000000000
Binary files a/apps/jetty/apache-tomcat-deployer/lib/jsp-api.jar and /dev/null differ
diff --git a/apps/jetty/apache-tomcat-deployer/lib/servlet-api.jar b/apps/jetty/apache-tomcat-deployer/lib/servlet-api.jar
deleted file mode 100644
index c9cb9b6251b89f18a404dd7f57ca9e713ab7c608..0000000000000000000000000000000000000000
Binary files a/apps/jetty/apache-tomcat-deployer/lib/servlet-api.jar and /dev/null differ
diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml
index 88e31854ee536e56119112c54314b57b93d7c28d..3974b8566d41b983e00fee8966136a312a5e855c 100644
--- a/apps/jetty/build.xml
+++ b/apps/jetty/build.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project basedir="." default="all" name="jetty">
 
-    <property name="jetty.ver" value="7.6.14.v20131031" />
+    <property name="jetty.ver" value="8.1.14.v20131031" />
     <property name="jetty.base" value="jetty-distribution-${jetty.ver}" />
-    <property name="jetty.sha1" value="f83894b5641f920ed8ac31501b473528e52a23fd" />
+    <property name="jetty.sha1" value="a6690261a822157c82fcc6327d05ac8c7dfed0a3" />
     <property name="jetty.filename" value="${jetty.base}.zip" />
     <property name="jetty.url" value="http://download.eclipse.org/jetty/${jetty.ver}/dist/${jetty.filename}" />
     <property name="verified.filename" value="verified.txt" />
@@ -104,9 +104,10 @@
               jetty-servlets-xxx.jar: Needed for CGI for eepsite
               jetty-sslengine-xxx.jar: Old Jetty 6, now a dummy
               jetty-java5-threadpool-xxx.jar: Old Jetty 6, now a dummy
-              glassfish 2.1: Not used, too old, see Tomcat below.
               jetty-rewrite-handler: Not used by I2P, but only 20KB and could be useful for eepsites
               jetty-management: Not used by I2P, but only 34KB and could be useful for eepsites, and we bundled it with Jetty 5
+              javax.servlet.jsp-2.2.0.v201112011158.jar: Required API
+              servlet-api-3.0.jar: Required API
               All of these are available in the Ubuntu packages libjetty-java and libjetty-extra-java
         -->
         <copy preservelastmodified="true" file="${jetty.base}/start.jar" tofile="jettylib/jetty-start.jar" />
@@ -133,6 +134,10 @@
                 <attribute name="Note" value="Intentionally empty" />
             </manifest>
         </jar>
+        <jar destfile="jettylib/javax.servlet.jar" duplicate="preserve" filesetmanifest="mergewithoutmain" >
+            <zipfileset excludes="about.html about_files about_files/* META-INF/ECLIPSEF.* META-INF/eclipse.inf plugin.properties" src="${jetty.base}/lib/servlet-api-3.0.jar" />
+            <zipfileset excludes="about.html about_files about_files/* META-INF/ECLIPSEF.* META-INF/eclipse.inf plugin.properties" src="${jetty.base}/lib/jsp/javax.servlet.jsp-2.2.0.v201112011158.jar" />
+        </jar>
       <!--
         <delete file="jetty.tar" />
         <delete dir="${jetty.base}" />
@@ -152,10 +157,14 @@
          was set individually in wrapper.config, we rename and combine the jars as follows:
          jasper.jar : jasper-runtime.jar
          jasper-el.jar + el-api.jar : commons-el.jar
-         servlet-api.jar + jsp-api.jar : javax.servlet.jar
          tomcat-juli.jar : Add to commons-logging.jar
          empty jar : jasper-compiler.jar
          Also, take NOTICE and LICENSE out of each one, we bundle those separately.
+
+         Not as of Jetty 8 (using from Jetty):
+         servlet-api.jar + jsp-api.jar : javax.servlet.jar
+         If we go to Tomcat 7:
+         tomcat-api.jar + tomcat-util.jar: Add to javax.servlet.jar (as of Tomcat 7 / Jetty 8)
      -->
     <target name="copyTomcatLib" >
         <jar destfile="jettylib/jasper-runtime.jar" filesetmanifest="merge" >
@@ -165,10 +174,14 @@
             <zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/jasper-el.jar" />
             <zipfileset excludes="META-INF/**/*" src="${tomcat.lib}/el-api.jar" />
         </jar>
+<!--
         <jar destfile="jettylib/javax.servlet.jar" duplicate="preserve" filesetmanifest="mergewithoutmain" >
             <zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/servlet-api.jar" />
             <zipfileset excludes="META-INF/**/*" src="${tomcat.lib}/jsp-api.jar" />
+            <zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/tomcat-api.jar" />
+            <zipfileset excludes="META-INF/LICENSE META-INF/NOTICE" src="${tomcat.lib}/tomcat-util.jar" />
         </jar>
+-->
         <!-- Ant bug, don't set update and filesetmanifest or the update doesn't happen,
              Their bug tracker claims fixed in 1.8.0 but broken for me in 1.8.1
           -->
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-continuation-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-continuation-7.6.14.v20131031.jar
deleted file mode 100644
index dc1dfe6ac7b45a421a877ba5bcaf1865bf31a143..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-continuation-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-deploy-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-deploy-7.6.14.v20131031.jar
deleted file mode 100644
index c0c8bf05ecc7102ff785d0df454b4eb2e1da5d58..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-deploy-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-http-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-http-7.6.14.v20131031.jar
deleted file mode 100644
index 510149bc781ab75ce84e682849db9bd198b97318..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-http-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-io-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-io-7.6.14.v20131031.jar
deleted file mode 100644
index 1e7b03f3663e09aa469ca019019f60e507ad6dd8..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-io-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-jmx-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-jmx-7.6.14.v20131031.jar
deleted file mode 100644
index 425408a606fb897d7e0003c4c4977f5067219180..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-jmx-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-rewrite-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-rewrite-7.6.14.v20131031.jar
deleted file mode 100644
index dc5f7dd6076a8814ace1f07ac5f9883189bd9330..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-rewrite-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-security-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-security-7.6.14.v20131031.jar
deleted file mode 100644
index aef114193120ab506973a9bb169d01beed7684f2..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-security-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-server-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-server-7.6.14.v20131031.jar
deleted file mode 100644
index abceaf73b1bf184fd4df8d2a60be8b246c19c42a..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-server-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-servlet-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-servlet-7.6.14.v20131031.jar
deleted file mode 100644
index 4f8bdba793d3fbba1672e3e5dd2344d0138e5618..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-servlet-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-servlets-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-servlets-7.6.14.v20131031.jar
deleted file mode 100644
index a366efbb27a1775cc492e5d93e25befab1a6024f..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-servlets-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-util-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-util-7.6.14.v20131031.jar
deleted file mode 100644
index 4b91a1dd5733405a8fb5ef5c025117b79dbfbf32..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-util-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-webapp-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-webapp-7.6.14.v20131031.jar
deleted file mode 100644
index 584e39628d6365b60fcf41ce0f23e7efd88bf355..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-webapp-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-xml-7.6.14.v20131031.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-xml-7.6.14.v20131031.jar
deleted file mode 100644
index 10859848ab066800af8a560156ab81dd15a576cf..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/lib/jetty-xml-7.6.14.v20131031.jar and /dev/null differ
diff --git a/apps/jetty/jetty-distribution-7.6.14.v20131031/start.jar b/apps/jetty/jetty-distribution-7.6.14.v20131031/start.jar
deleted file mode 100644
index c6a9518977dfda7276bba57a4def7b981f492e3e..0000000000000000000000000000000000000000
Binary files a/apps/jetty/jetty-distribution-7.6.14.v20131031/start.jar and /dev/null differ
diff --git a/apps/routerconsole/jsp/error.jsp b/apps/routerconsole/jsp/error.jsp
index 22b2e16fa1ffb231eb9670d5795c089ebd280ccf..5dfba993eb0a23a3523caf4c101963fd3ebb106c 100644
--- a/apps/routerconsole/jsp/error.jsp
+++ b/apps/routerconsole/jsp/error.jsp
@@ -4,9 +4,12 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <%
     // Let's make this easy...
-    final Integer ERROR_CODE = (Integer) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_STATUS_CODE);
-    final String ERROR_URI = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_REQUEST_URI);
-    final String ERROR_MESSAGE = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_MESSAGE);
+    // These are defined in Jetty 7 org.eclipse.jetty.server.Dispatcher,
+    // and in Servlet 3.0 (Jetty 8) javax.servlet.RequestDispatcher,
+    // just use the actual strings here to make it compatible with either
+    final Integer ERROR_CODE = (Integer) request.getAttribute("javax.servlet.error.status_code");
+    final String ERROR_URI = (String) request.getAttribute("javax.servlet.error.request_uri");
+    final String ERROR_MESSAGE = (String) request.getAttribute("javax.servlet.error.message");
     if (ERROR_CODE != null && ERROR_MESSAGE != null) {
         // this is deprecated but we don't want sendError()
         response.setStatus(ERROR_CODE.intValue(), ERROR_MESSAGE);
diff --git a/apps/routerconsole/jsp/error500.jsp b/apps/routerconsole/jsp/error500.jsp
index 5f7b96ccb92015d618494aa9afdf96c26c74ae98..f86125f115583bd56a7e7dbc783837bdd6602864 100644
--- a/apps/routerconsole/jsp/error500.jsp
+++ b/apps/routerconsole/jsp/error500.jsp
@@ -3,11 +3,14 @@
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <%
     // Let's make this easy...
-    final Integer ERROR_CODE = (Integer) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_STATUS_CODE);
-    final String ERROR_URI = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_REQUEST_URI);
-    final String ERROR_MESSAGE = (String) request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_MESSAGE);
-    final Class ERROR_CLASS = (Class)request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_EXCEPTION_TYPE);
-    final Throwable ERROR_THROWABLE = (Throwable)request.getAttribute(org.eclipse.jetty.server.Dispatcher.ERROR_EXCEPTION);
+    // These are defined in Jetty 7 org.eclipse.jetty.server.Dispatcher,
+    // and in Servlet 3.0 (Jetty 8) javax.servlet.RequestDispatcher,
+    // just use the actual strings here to make it compatible with either
+    final Integer ERROR_CODE = (Integer) request.getAttribute("javax.servlet.error.status_code");
+    final String ERROR_URI = (String) request.getAttribute("javax.servlet.error.request_uri");
+    final String ERROR_MESSAGE = (String) request.getAttribute("javax.servlet.error.message");
+    final Class ERROR_CLASS = (Class) request.getAttribute("javax.servlet.error.exception_type");
+    final Throwable ERROR_THROWABLE = (Throwable) request.getAttribute("javax.servlet.error.exception");
     if (ERROR_CODE != null && ERROR_MESSAGE != null) {
         // this is deprecated but we don't want sendError()
         response.setStatus(ERROR_CODE.intValue(), ERROR_MESSAGE);
diff --git a/installer/i2pinstaller.xml b/installer/i2pinstaller.xml
index 4751a856501e5ede9073e4c491b07c7b371dceae..84edded227a89180f3480ccc8412e2617e97fda1 100644
--- a/installer/i2pinstaller.xml
+++ b/installer/i2pinstaller.xml
@@ -7,7 +7,7 @@
   <customProcName>false</customProcName>
   <icon>resources/console.ico</icon>
   <jre>
-    <minVersion>1.5.0</minVersion>
+    <minVersion>1.6.0</minVersion>
   </jre>
   <!--
   <splash>
diff --git a/installer/i2pstandalone.xml b/installer/i2pstandalone.xml
index 60ba8163bbed6c4ba98ed7f0aba39755d5f68366..8b92ed21eeb1d0895cdf83de34e35d694aae03fc 100644
--- a/installer/i2pstandalone.xml
+++ b/installer/i2pstandalone.xml
@@ -7,7 +7,7 @@
   <customProcName>false</customProcName>
   <icon>resources/start.ico</icon>
   <jre>
-    <minVersion>1.5.0</minVersion>
+    <minVersion>1.6.0</minVersion>
     <!--
     <minHeapSize>64</minHeapSize>
     -->