diff --git a/router/java/src/net/i2p/router/transport/UPnPManager.java b/router/java/src/net/i2p/router/transport/UPnPManager.java
index 6a970ee6825ba7f459d97cdc00add6d0dc067986..a1ad8db3a9569e1c3ad5c03782431d319ec7b1bd 100644
--- a/router/java/src/net/i2p/router/transport/UPnPManager.java
+++ b/router/java/src/net/i2p/router/transport/UPnPManager.java
@@ -139,6 +139,8 @@ class UPnPManager {
     public synchronized void rescan() {
         if (!_shouldBeRunning)
             return;
+        if (_context.router().gracefulShutdownInProgress())
+            return;
         long now = System.currentTimeMillis();
         if (_lastRescan + RESCAN_MIN_DELAY > now)
             return;