diff --git a/installer/resources/checklist.md b/installer/resources/checklist.md
index 36cdecae873edcebfac6826242b0cbededff9114..142acf32cd46fca8bb8db37339c82527c1a71397 100644
--- a/installer/resources/checklist.md
+++ b/installer/resources/checklist.md
@@ -131,7 +131,7 @@
 
 ### Build and test
 
-1. `ant release`
+1. `ant release` or `ant releaseWithGeoIP` or `ant releaseWithJbigi`
 
   - Copy i2pinstall_${release.number}_windows.exe,
     console.ico, ../lib/izpack/rh.bat, and ../lib/izpack/VersionInfo_template.rc
diff --git a/router/java/src/net/i2p/router/LeaseSetKeys.java b/router/java/src/net/i2p/router/LeaseSetKeys.java
index ac623c05e78009ecf80f7f7b059d72b5c4fda911..559a0b65f6bb24aa43660e3f2b1de6896b2c831a 100644
--- a/router/java/src/net/i2p/router/LeaseSetKeys.java
+++ b/router/java/src/net/i2p/router/LeaseSetKeys.java
@@ -62,10 +62,12 @@ public class LeaseSetKeys {
      *
      *  @param dest unused
      *  @param revocationKey unused, may be null
-     *  @param decryptionKeys non-null
+     *  @param decryptionKeys non-null, non-empty
      *  @since 0.9.44
      */
     public LeaseSetKeys(Destination dest, SigningPrivateKey revocationKey, List<PrivateKey> decryptionKeys) {
+        if (decryptionKeys.isEmpty())
+            throw new IllegalArgumentException("no keys");
         _revocationKey = revocationKey;
         PrivateKey elg = null;
         PrivateKey ec = null;
diff --git a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
index a7dd7b13e678b62a703b8f931bdd6e63f786b52b..5c6f3ddbd19027d6c99487456624f3cf36693131 100644
--- a/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
+++ b/router/java/src/net/i2p/router/client/ClientConnectionRunner.java
@@ -602,12 +602,12 @@ class ClientConnectionRunner {
                 hasElg = true;
             }
             if (hasElg) {
+                TransientSessionKeyManager tskm = new TransientSessionKeyManager(_context, tags, thresh);
                 if (hasEC) {
-                    TransientSessionKeyManager tskm = new TransientSessionKeyManager(_context, tags, thresh);
                     RatchetSKM rskm = new RatchetSKM(_context);
                     _sessionKeyManager = new MuxedSKM(tskm, rskm);
                 } else {
-                    _sessionKeyManager = new TransientSessionKeyManager(_context, tags, thresh);
+                    _sessionKeyManager = tskm;
                 }
             } else {
                 if (hasEC) {
diff --git a/router/java/src/net/i2p/router/crypto/ratchet/RatchetSessionTag.java b/router/java/src/net/i2p/router/crypto/ratchet/RatchetSessionTag.java
index 539b4a41b98db1ab8416984f54578f540b3f5c44..948b80c2e598911bf45d3ede8d1799dc4ab53f88 100644
--- a/router/java/src/net/i2p/router/crypto/ratchet/RatchetSessionTag.java
+++ b/router/java/src/net/i2p/router/crypto/ratchet/RatchetSessionTag.java
@@ -40,19 +40,13 @@ public class RatchetSessionTag {
     }
 
     /**
-     * We assume the data has enough randomness in it, so use the first 4 bytes for speed.
-     * If this is not the case, override in the extending class.
+     * We assume the data has enough randomness in it, so use 4 bytes for speed.
      */
     @Override
     public int hashCode() {
         return (int) _data;
     }
 
-    /**
-     * Warning - this returns true for two different classes with the same size
-     * and same data, e.g. SessionKey and SessionTag, but you wouldn't
-     * put them in the same Set, would you?
-     */
     @Override
     public boolean equals(Object obj) {
         if (obj == this) return true;