diff --git a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
index 03b31bc3682ba2ce4ff505fa17f69bc440b2a806..8dba7275dc2bbecb7c21d1f3dc679fd4e8bb5396 100644
--- a/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
+++ b/router/java/src/net/i2p/router/message/OutboundClientMessageOneShotJob.java
@@ -580,11 +580,12 @@ public class OutboundClientMessageOneShotJob extends JobImpl {
 
     /**
      * String used to cache things with based on source + dest
+     * Put the dest first to make string matching faster
      */
     private String _hashPair;
     private String hashPair() {
         if (_hashPair == null)
-            _hashPair = _from.calculateHash().toBase64() + _to.calculateHash().toBase64();
+            _hashPair = _to.calculateHash().toBase64() + _from.calculateHash().toBase64();
         return _hashPair;
     }
 
@@ -594,7 +595,7 @@ public class OutboundClientMessageOneShotJob extends JobImpl {
      * 44 = 32 * 4 / 3
      */
     private Hash sourceFromHashPair(String s) {
-        return new Hash(Base64.decode(s.substring(0, 44)));
+        return new Hash(Base64.decode(s.substring(44, 88)));
     }
 
     /**