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 366095d93171bbb88f23ed451fd9c9cd0cd5e6a1..07c6a4fbd361f251147559c979e42e9af0ed52b0 100644
--- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
+++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java
@@ -879,7 +879,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
                     _log.warn(remotePeer + " changed address FROM " + oldID + " TO " + remoteId);
                 PeerState oldPeer2 = _peersByRemoteHost.remove(oldID);
                 // different ones in the two maps? shouldn't happen
-                if (oldPeer2 != oldPeer) {
+                if (oldPeer2 != oldPeer && oldPeer2 != null) {
                     oldPeer2.dropOutbound();
                      _introManager.remove(oldPeer2);
                     _expireEvent.remove(oldPeer2);