diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java
index 422254fa5157cd33cc66a45b0ad9307d5571b8d4..ad6d61a9ce094b2bfebe557c75e247d9d79fb516 100644
--- a/router/java/src/net/i2p/router/transport/TransportImpl.java
+++ b/router/java/src/net/i2p/router/transport/TransportImpl.java
@@ -846,10 +846,10 @@ public abstract class TransportImpl implements Transport {
     public void mayDisconnect(Hash peer) {}
 
     public boolean isUnreachable(Hash peer) {
-        long now = _context.clock().now();
         synchronized (_unreachableEntries) {
             Long when = _unreachableEntries.get(peer);
             if (when == null) return false;
+            long now = _context.clock().now();
             if (when.longValue() + UNREACHABLE_PERIOD < now) {
                 _unreachableEntries.remove(peer);
                 return false;
@@ -910,10 +910,10 @@ public abstract class TransportImpl implements Transport {
      * This is NOT reset if the peer contacts us.
      */
     public boolean wasUnreachable(Hash peer) {
-        long now = _context.clock().now();
         synchronized (_wasUnreachableEntries) {
             Long when = _wasUnreachableEntries.get(peer);
             if (when != null) {
+                long now = _context.clock().now();
                 if (when.longValue() + WAS_UNREACHABLE_PERIOD < now) {
                     _unreachableEntries.remove(peer);
                     return false;