diff --git a/router/java/src/net/i2p/router/tunnel/HopProcessor.java b/router/java/src/net/i2p/router/tunnel/HopProcessor.java
index f45ec234b4fa3eff131bde6bf08a14bd8d0baf11..9ba6218fd90dd5e9bec5b3093d65426977f6be05 100644
--- a/router/java/src/net/i2p/router/tunnel/HopProcessor.java
+++ b/router/java/src/net/i2p/router/tunnel/HopProcessor.java
@@ -30,14 +30,28 @@ class HopProcessor {
      */
     //static final boolean USE_DOUBLE_IV_ENCRYPTION = true;
     static final int IV_LENGTH = 16;
-    
 
+    /**
+     *  @deprecated used only by unit tests
+     */
+    HopProcessor(I2PAppContext ctx, HopConfig config) {
+        this(ctx, config, createValidator());
+    }
+    
     public HopProcessor(I2PAppContext ctx, HopConfig config, IVValidator validator) {
         _context = ctx;
         _log = ctx.logManager().getLog(HopProcessor.class);
         _config = config;
         _validator = validator;
     }
+
+    /**
+     *  @deprecated used only by unit test constructor
+     */
+    private static IVValidator createValidator() { 
+        // yeah, we'll use an O(1) validator later (e.g. bloom filter)
+        return new HashSetIVValidator();
+    }
     
     /**
      * Process the data for the current hop, overwriting the original data with
diff --git a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java
index 88aa6da71ad9b68947bff3fd893346b632f83106..4a3c5eccbec7b95e2eafb12210483e7b3f426cd7 100644
--- a/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java
+++ b/router/java/src/net/i2p/router/tunnel/InboundEndpointProcessor.java
@@ -21,8 +21,10 @@ class InboundEndpointProcessor {
     
     //static final boolean USE_ENCRYPTION = HopProcessor.USE_ENCRYPTION;
     
-    /** @deprecated unused */
-    public InboundEndpointProcessor(RouterContext ctx, TunnelCreatorConfig cfg) {
+    /**
+     *  @deprecated used only by unit tests
+     */
+    InboundEndpointProcessor(RouterContext ctx, TunnelCreatorConfig cfg) {
         this(ctx, cfg, DummyValidator.getInstance());
     }
 
diff --git a/router/java/test/junit/net/i2p/router/tunnel/BuildMessageTestStandalone.java b/router/java/test/junit/net/i2p/router/tunnel/BuildMessageTestStandalone.java
index 1ca7caea82ad28ce19a11ebcf2d3d4ffa15a050b..3479462215c1dc5778921310cdff9521a3f2fa4a 100644
--- a/router/java/test/junit/net/i2p/router/tunnel/BuildMessageTestStandalone.java
+++ b/router/java/test/junit/net/i2p/router/tunnel/BuildMessageTestStandalone.java
@@ -75,7 +75,7 @@ public class BuildMessageTestStandalone extends TestCase {
         for (int i = 0; i < cfg.getLength(); i++) {
             // this not only decrypts the current hop's record, but encrypts the other records
             // with the reply key
-            BuildRequestRecord req = proc.decrypt(ctx, msg, _peers[i], _privKeys[i]);
+            BuildRequestRecord req = proc.decrypt(msg, _peers[i], _privKeys[i]);
             // If false, no records matched the _peers[i], or the decryption failed
             assertTrue("foo @ " + i, req != null);
             long ourId = req.readReceiveTunnelId();