diff --git a/Slackware/i2p/i2p.SlackBuild b/Slackware/i2p/i2p.SlackBuild
index 421033356e7cf8d82497b318d068efebcf071974..3bb2c950337dbf2ab519cf311bc6966f388e3234 100755
--- a/Slackware/i2p/i2p.SlackBuild
+++ b/Slackware/i2p/i2p.SlackBuild
@@ -65,7 +65,7 @@ cd $CWD/../../
 
 ant distclean
 ant dist
-
+ant tarball
 
 tar xjvf i2p.tar.bz2 -C $TMP
 
diff --git a/apps/BOB/nbproject/private/private.xml b/apps/BOB/nbproject/private/private.xml
index 2482568bf901a79a0141ee10333f9c8aa577e198..237b674f17d5a2b0fdc9d6c890d2bc6793b548b8 100644
--- a/apps/BOB/nbproject/private/private.xml
+++ b/apps/BOB/nbproject/private/private.xml
@@ -2,6 +2,6 @@
 <project-private xmlns="http://www.netbeans.org/ns/project-private/1">
     <editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/1"/>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/1">
-        <file>file:/root/NetBeansProjects/i2p.i2p/apps/BOB/src/net/i2p/BOB/MUXlisten.java</file>
+        <file>file:/root/NetBeansProjects/i2p.i2p/apps/BOB/src/net/i2p/BOB/I2PtoTCP.java</file>
     </open-files>
 </project-private>
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
index 456f38a6c099cdebbb84b0e45c2bd8829d30446e..e1ce9084ecb9479dc5590a845f1b5e83f6c131ce 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java
@@ -19,6 +19,7 @@ import net.i2p.data.DataHelper;
 import net.i2p.util.EventDispatcher;
 import net.i2p.util.I2PThread;
 import net.i2p.util.Log;
+import net.i2p.data.Base32;
 
 /**
  * Simple extension to the I2PTunnelServer that filters the HTTP
@@ -33,6 +34,8 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
     /** what Host: should we seem to be to the webserver? */
     private String _spoofHost;
     private static final String HASH_HEADER = "X-I2P-DestHash";
+    private static final String DEST64_HEADER = "X-I2P-DestB64";
+    private static final String DEST32_HEADER = "X-I2P-DestB32";
 
     public I2PTunnelHTTPServer(InetAddress host, int port, String privData, String spoofHost, Logging l, EventDispatcher notifyThis, I2PTunnel tunnel) {
         super(host, port, privData, l, notifyThis, tunnel);
@@ -74,6 +77,9 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
             StringBuilder command = new StringBuilder(128);
             Properties headers = readHeaders(in, command);
             headers.setProperty(HASH_HEADER, socket.getPeerDestination().calculateHash().toBase64());
+            headers.setProperty(DEST32_HEADER, Base32.encode(socket.getPeerDestination().calculateHash().getData()) + ".b32.i2p" );
+            headers.setProperty(DEST64_HEADER, socket.getPeerDestination().toBase64());
+
             if ( (_spoofHost != null) && (_spoofHost.trim().length() > 0) )
                 headers.setProperty("Host", _spoofHost);
             headers.setProperty("Connection", "close");
@@ -361,6 +367,10 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer {
                     name = "X-Accept-encoding";
                 else if (HASH_HEADER.equalsIgnoreCase(name))
                     continue;     // Prevent spoofing
+                else if (DEST64_HEADER.equalsIgnoreCase(name))
+                    continue;     // Prevent spoofing
+                else if (DEST32_HEADER.equalsIgnoreCase(name))
+                    continue;     // Prevent spoofing
                 headers.setProperty(name, value);
                 if (_log.shouldLog(Log.DEBUG))
                     _log.debug("Read the header [" + name + "] = [" + value + "]");
diff --git a/core/java/src/net/i2p/util/WorkingDir.java b/core/java/src/net/i2p/util/WorkingDir.java
index 227a0c3bef01344291460b3c8e7be480c49d7505..a003d2b29e7a5b36e2bb0acddfc7fd9c70c37cf3 100644
--- a/core/java/src/net/i2p/util/WorkingDir.java
+++ b/core/java/src/net/i2p/util/WorkingDir.java
@@ -239,7 +239,7 @@ public class WorkingDir {
      * Recursive copy a file or dir to a dir
      * 
      * @param src file or directory, need not exist
-     * @param target the directory to copy to, will be created if it doesn't exist
+     * @param targetDir the directory to copy to, will be created if it doesn't exist
      * @return true for success OR if src does not exist
      */
     public static final boolean copy(File src, File targetDir) {
@@ -277,8 +277,8 @@ public class WorkingDir {
     
     /**
      * @param src not a directory, must exist
-     * @param dest not a directory, will be overwritten if existing
-     * @@reurn true if it was copied successfully
+     * @param dst not a directory, will be overwritten if existing
+     * @return true if it was copied successfully
      */
     public static boolean copyFile(File src, File dst) {
         if (!src.exists()) return false;
diff --git a/history.txt b/history.txt
index d02bf97dc6bf66f95629bf3df4748287d9ae757a..fa86dcd76ef330cddac5656b4179287b439a2d00 100644
--- a/history.txt
+++ b/history.txt
@@ -1,3 +1,30 @@
+2009-07-06 zzz
+    * Console: Fix small textareas on Opera
+    * EepGet: Don't send X-Accept-Encoding for non-proxied fetches
+    * HTTP Proxy: Limit proxy.i2p to /themes/ directory
+    * I2PSnark:
+      - Change postman2 announce URL to use hostname rather than B64
+      - Shorten torrent name to fit better on one line
+    * I2PTunnel:
+      - Add edit text
+      - Fix broken favicon
+    * Move almost all uses of StringBuffer to StringBuilder,
+      for efficiency (thanks Arsene for the suggestion)
+    * Reseed:
+      - Fix console status messages broken by global replace
+      - Remove tino, add b.netdb.i2p2.de
+    * SSUDemo: Move to the router/java/test directory
+    * Startup: Log clients.config problems
+    * Transport: Implement NTCP auto-transition from an
+      address to no address, so that inbound NTCP is disabled
+      after SSU detects a firewall. When UPnP was apparently successful
+      but the router is still firewalled (due to an additional
+      software firewall or a bad UPnP indication, for example)
+      the router will now remove the NTCP address.
+
+2009-07-05 sponge
+    * Added X-I2P-DestB64 and X-I2P-DestB32 http headers
+
 2009-06-29 zzz
     * Big directory rework:
       Eliminate all uses of the current working directory, and
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index bd644cee5380c3e3f738de0d0291c74759b2346f..e4d51a2bbbc6525a11e0ae2b6866c05bfb2d3470 100644
--- a/router/java/src/net/i2p/router/RouterVersion.java
+++ b/router/java/src/net/i2p/router/RouterVersion.java
@@ -18,7 +18,7 @@ public class RouterVersion {
     /** deprecated */
     public final static String ID = "Monotone";
     public final static String VERSION = CoreVersion.VERSION;
-    public final static long BUILD = 2;
+    public final static long BUILD = 4;
     /** for example "-test" */
     public final static String EXTRA = "";
     public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;