diff --git a/apps/routerconsole/java/src/net/i2p/router/update/NewsFetcher.java b/apps/routerconsole/java/src/net/i2p/router/update/NewsFetcher.java
index 0cfbd4841c54971a2278cf7be00fb6d4dd5529e3..daf9865fc23ce3645e728d14b78a5539fe8a1639 100644
--- a/apps/routerconsole/java/src/net/i2p/router/update/NewsFetcher.java
+++ b/apps/routerconsole/java/src/net/i2p/router/update/NewsFetcher.java
@@ -658,7 +658,7 @@ class NewsFetcher extends UpdateRunner {
                 }
                 Hash h = Hash.create(b);
                 if (!ban.isBanlistedHard(h)) {
-                    ban.banlistRouterHard(h, reason);
+                    ban.banlistRouterForever(h, reason);
                     _context.commSystem().forceDisconnect(h);
                 }
             } else {
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java
index dfc5446bd197fdd0f23a9fc7154ad41394b052a4..243e06b89460d03eb838fdb6313ccd808244bd2e 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/ConfigPeerHandler.java
@@ -21,7 +21,7 @@ public class ConfigPeerHandler extends FormHandler {
         } else if (_action.equals(_t("Ban peer until restart"))) {
             Hash h = getHash();
             if (h != null) {
-                _context.banlist().banlistRouterHard(h, _t("Manually banned via {0}"), "<a href=\"configpeer\">configpeer</a>");
+                _context.banlist().banlistRouterForever(h, _t("Manually banned via {0}"), "<a href=\"configpeer\">configpeer</a>");
                 _context.commSystem().forceDisconnect(h);
                 addFormNotice(_t("Peer") + " " + _peer + " " + _t("banned until restart") );
                 return;
diff --git a/router/java/src/net/i2p/router/Banlist.java b/router/java/src/net/i2p/router/Banlist.java
index 88ef083e9369f08822db6a4463ee8bddc9e5bc7b..7ed72dcfd3ce6be254337d4c0c72438345767ffc 100644
--- a/router/java/src/net/i2p/router/Banlist.java
+++ b/router/java/src/net/i2p/router/Banlist.java
@@ -72,7 +72,7 @@ public class Banlist {
         _entries = new ConcurrentHashMap<Hash, Entry>(16);
         _context.jobQueue().addJob(new Cleanup(_context));
         // i2pd bug?
-        banlistRouterHard(Hash.FAKE_HASH, "Invalid Hash");
+        banlistRouterForever(Hash.FAKE_HASH, "Invalid Hash");
     }
     
     private class Cleanup extends JobImpl {
@@ -149,14 +149,14 @@ public class Banlist {
     /**
      *  @return true if it WAS previously on the list
      */
-    public boolean banlistRouterHard(Hash peer, String reason) {
+    public boolean banlistRouterForever(Hash peer, String reason) {
         return banlistRouter(peer, reason, null, true);
     }
 
     /**
      *  @return true if it WAS previously on the list
      */
-    public boolean banlistRouterHard(Hash peer, String reason, String reasonComment) {
+    public boolean banlistRouterForever(Hash peer, String reason, String reasonComment) {
         return banlistRouter(peer, reason, reasonComment, null, true);
     }
 
diff --git a/router/java/src/net/i2p/router/Blocklist.java b/router/java/src/net/i2p/router/Blocklist.java
index b9cb438c92b4ddccdd4e9c2647ad5b1d00510efa..edd37db0132cb11f48b88c2bbbb2782e4c4870e3 100644
--- a/router/java/src/net/i2p/router/Blocklist.java
+++ b/router/java/src/net/i2p/router/Blocklist.java
@@ -372,7 +372,7 @@ public class Blocklist {
                                              _context.banlist().BANLIST_CODE_HARD, null,
                                              _context.clock().now() + expireInterval());
         else
-            _context.banlist().banlistRouterHard(peer, reason, comment);
+            _context.banlist().banlistRouterForever(peer, reason, comment);
     }
 
     /**
@@ -1287,7 +1287,7 @@ public class Blocklist {
                                              _context.banlist().BANLIST_CODE_HARD, null,
                                              System.currentTimeMillis()+expireInterval());
         else
-            _context.banlist().banlistRouterHard(peer, reason, reasonComment);
+            _context.banlist().banlistRouterForever(peer, reason, reasonComment);
     }
     private synchronized void banlistRouter(Hash peer, List<byte[]> ips, long duration) {
         // This only checks one file for now, pick the best one
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillVerifyStoreJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillVerifyStoreJob.java
index 36d08fc03a220e3b508086071c7df3ff6b42d629..44df85d41941464aef74da233a888c8dbc570299 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillVerifyStoreJob.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/FloodfillVerifyStoreJob.java
@@ -376,7 +376,7 @@ class FloodfillVerifyStoreJob extends JobImpl {
                     if (_log.shouldWarn())
                         _log.warn(getJobId() + ": Sent bad data for verify: " + _target);
                     pm.dbLookupFailed(_target);
-                    ctx.banlist().banlistRouterHard(_target, "Sent bad netdb data");
+                    ctx.banlist().banlistRouterForever(_target, "Sent bad netdb data");
                     ctx.statManager().addRateData("netDb.floodfillVerifyFail", delay);
                     resend();
                     return;
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
index 93cc2398720df9d346ad63498f221d02976d77a3..e3d23dbd9b5948047c6f6b6847767893cfdd138d 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
@@ -1248,7 +1248,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
                 // old i2pd bug, possibly at startup, don't ban forever
                 _context.banlist().banlistRouter(key, "No network specified", null, null, _context.clock().now() + Banlist.BANLIST_DURATION_NO_NETWORK);
             } else {
-                _context.banlist().banlistRouterHard(key, "Not in our network: " + id);
+                _context.banlist().banlistRouterForever(key, "Not in our network: " + id);
             }
             if (_log.shouldLog(Log.WARN))
                 _log.warn("Not in our network: " + routerInfo, new Exception());
@@ -1454,7 +1454,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
                         SigType type = kc.getSigType();
                         if (type == null || !type.isAvailable()) {
                             String stype = (type != null) ? type.toString() : Integer.toString(kc.getSigTypeCode());
-                            _context.banlist().banlistRouterHard(h, "Unsupported signature type " + stype);
+                            _context.banlist().banlistRouterForever(h, "Unsupported signature type " + stype);
                             if (_log.shouldLog(Log.WARN))
                                 _log.warn("Unsupported sig type " + stype + " for router " + h);
                             throw new UnsupportedCryptoException("Sig type " + stype);
diff --git a/router/java/src/net/i2p/router/startup/LoadRouterInfoJob.java b/router/java/src/net/i2p/router/startup/LoadRouterInfoJob.java
index 36c4d72d7eda292b1e6e671713d824b4ebfb45f4..a14281008a4a637f16c1ef8c950d4d7c9bc17754 100644
--- a/router/java/src/net/i2p/router/startup/LoadRouterInfoJob.java
+++ b/router/java/src/net/i2p/router/startup/LoadRouterInfoJob.java
@@ -178,7 +178,7 @@ class LoadRouterInfoJob extends JobImpl {
                         File f = PersistentDataStore.getRouterInfoFile(getContext(), h);
                         f.delete();
                         // the banlist can be called at any time
-                        getContext().banlist().banlistRouterHard(h, "Our previous identity");
+                        getContext().banlist().banlistRouterForever(h, "Our previous identity");
                         _us = null;
                     }
                     if (sigTypeChanged)
diff --git a/router/java/src/net/i2p/router/transport/GeoIP.java b/router/java/src/net/i2p/router/transport/GeoIP.java
index d4c9191e6acab5a1088ba07db28013643a7d52a4..3610634c9f84cb5cb8832fb9ba4b23c4ddd008a7 100644
--- a/router/java/src/net/i2p/router/transport/GeoIP.java
+++ b/router/java/src/net/i2p/router/transport/GeoIP.java
@@ -758,7 +758,7 @@ public class GeoIP {
         for (Hash h : ctx.netDb().getAllRouters()) {
             String hisCountry = ctx.commSystem().getCountry(h);
             if (country.equals(hisCountry)) {
-                ctx.banlist().banlistRouterHard(h, "In our country");
+                ctx.banlist().banlistRouterForever(h, "In our country");
             }
         }
     }
diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java
index c79a260dbf396837598a3d5eb7b47a4d63e250dc..79767765c00f117e03b138e52af36cc1e1c83120 100644
--- a/router/java/src/net/i2p/router/transport/TransportManager.java
+++ b/router/java/src/net/i2p/router/transport/TransportManager.java
@@ -928,7 +928,7 @@ public class TransportManager implements TransportEventListener {
             if (msg.getTarget().getIdentity().getSigningPublicKey().getType() == null) {
                 // we don't support his crypto
                 _context.statManager().addRateData("transport.banlistOnUnsupportedSigType", 1);
-                _context.banlist().banlistRouterHard(peer, _x("Unsupported signature type"));
+                _context.banlist().banlistRouterForever(peer, _x("Unsupported signature type"));
             } else if (unreachableTransports >= _transports.size() && countActivePeers() > 0) {
                 // Don't banlist if we aren't talking to anybody, as we may have a network connection issue
                 // TODO if we are IPv6 only, ban for longer
diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
index b35cf6e0d8872fcad1638eca0e0c3048e6deb856..c27b451829fdaad99e99866d557d43892f69dc93 100644
--- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
+++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java
@@ -548,7 +548,7 @@ public class NTCPTransport extends TransportImpl {
             if (nid == -1)
                 _context.banlist().banlistRouter(peer, "No network specified", null, null, _context.clock().now() + Banlist.BANLIST_DURATION_NO_NETWORK);
             else
-                _context.banlist().banlistRouterHard(peer, "Not in our network: " + nid);
+                _context.banlist().banlistRouterForever(peer, "Not in our network: " + nid);
             if (_log.shouldWarn())
                 _log.warn("Not in our network: " + toAddress, new Exception());
             markUnreachable(peer);
diff --git a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java
index b87d6bd90c139000fa4314d89b2705642a550f7b..f75cc074538332ce01f1ce048ef9e4592b746a45 100644
--- a/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java
+++ b/router/java/src/net/i2p/router/transport/udp/EstablishmentManager.java
@@ -330,7 +330,7 @@ class EstablishmentManager {
             if (id == -1)
                 _context.banlist().banlistRouter(toHash, "No network specified", null, null, _context.clock().now() + Banlist.BANLIST_DURATION_NO_NETWORK);
             else
-                _context.banlist().banlistRouterHard(toHash, "Not in our network: " + id);
+                _context.banlist().banlistRouterForever(toHash, "Not in our network: " + id);
             if (_log.shouldWarn())
                 _log.warn("Not in our network: " + toRouterInfo, new Exception());
             _transport.markUnreachable(toHash);
diff --git a/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java b/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java
index ffae0a080ca0189ef6b154cbf6ffc6e9587f68ce..e598dc34d9191283bd145f7921f8d162b5c97e0a 100644
--- a/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java
+++ b/router/java/src/net/i2p/router/transport/udp/InboundEstablishState.java
@@ -394,7 +394,7 @@ class InboundEstablishState {
                     if (_log.shouldLog(Log.WARN))
                         _log.warn("Unsupported sig type from: " + toString());
                     // _x() in UDPTransport
-                    _context.banlist().banlistRouterHard(_receivedUnconfirmedIdentity.calculateHash(),
+                    _context.banlist().banlistRouterForever(_receivedUnconfirmedIdentity.calculateHash(),
                                                             "Unsupported signature type");
                     fail();
                 }
diff --git a/router/java/src/net/i2p/router/transport/udp/MessageReceiver.java b/router/java/src/net/i2p/router/transport/udp/MessageReceiver.java
index 6ebac859f195387c7ce711c9000ce2f20f4f490d..17e2e0b50992ff9c2b10aa123a2efc7aca9875fd 100644
--- a/router/java/src/net/i2p/router/transport/udp/MessageReceiver.java
+++ b/router/java/src/net/i2p/router/transport/udp/MessageReceiver.java
@@ -233,7 +233,7 @@ class MessageReceiver {
                     // distinct port of buggy router
                     _transport.sendDestroy(ps, SSU2Util.REASON_BANNED);
                     _transport.dropPeer(ps, true, "Corrupt DSM");
-                    _context.banlist().banlistRouterHard(state.getFrom(),
+                    _context.banlist().banlistRouterForever(state.getFrom(),
                                                             "Sent corrupt message");  // don't bother translating
                 }
             }
diff --git a/router/java/src/net/i2p/router/transport/udp/PacketHandler.java b/router/java/src/net/i2p/router/transport/udp/PacketHandler.java
index 4f1acad10f9c6d51c38ab3db1d9c22060302e3a8..3550b3d374c984e93c4e5132a6fc9ebf100fc4f6 100644
--- a/router/java/src/net/i2p/router/transport/udp/PacketHandler.java
+++ b/router/java/src/net/i2p/router/transport/udp/PacketHandler.java
@@ -635,7 +635,7 @@ class PacketHandler {
                     _transport.dropPeer(state, true, "Clock skew");
                     if (state.getRemotePort() == 65520) {
                         // distinct port of buggy router
-                        _context.banlist().banlistRouterHard(state.getRemotePeer(),
+                        _context.banlist().banlistRouterForever(state.getRemotePeer(),
                                                                 _x("Excessive clock skew: {0}"),
                                                                 DataHelper.formatDuration(skew));
                     } else {
@@ -660,7 +660,7 @@ class PacketHandler {
                     _transport.dropPeer(state, true, "Clock skew");
                     if (state.getRemotePort() == 65520) {
                         // distinct port of buggy router
-                        _context.banlist().banlistRouterHard(state.getRemotePeer(),
+                        _context.banlist().banlistRouterForever(state.getRemotePeer(),
                                                                 _x("Excessive clock skew: {0}"),
                                                                 DataHelper.formatDuration(0 - skew));
                     } else {
diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
index 0604125fcbb8721b82a33ebc280cefd929cb6199..f418cd2a3722b00b16fefa1fa32f612f9358bd36 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -2083,7 +2083,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
                         if (id == -1)
                             _context.banlist().banlistRouter(peerHash, "No network specified", null, null, _context.clock().now() + Banlist.BANLIST_DURATION_NO_NETWORK);
                         else
-                            _context.banlist().banlistRouterHard(peerHash, "Not in our network: " + id);
+                            _context.banlist().banlistRouterForever(peerHash, "Not in our network: " + id);
                         if (peer != null)
                             sendDestroy(peer, SSU2Util.REASON_NETID);
                         dropPeer(peerHash, false, "Not in our network");
@@ -2471,7 +2471,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
                 if (nid == -1)
                     _context.banlist().banlistRouter(to, "No network specified", null, null, _context.clock().now() + Banlist.BANLIST_DURATION_NO_NETWORK);
                 else
-                    _context.banlist().banlistRouterHard(to, "Not in our network: " + nid);
+                    _context.banlist().banlistRouterForever(to, "Not in our network: " + nid);
                 markUnreachable(to);
                 return null;    
             }