diff --git a/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java b/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java
index 9c04f52b63e6d2e03892952643de6c289aae0deb..9a5661b5f252d2cd3e6f2e72dbb19e52e2457626 100644
--- a/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java
+++ b/router/java/src/net/i2p/router/transport/OutboundMessageRegistry.java
@@ -258,6 +258,7 @@ public class OutboundMessageRegistry {
     public void renderStatusHTML(Writer out) throws IOException {}
     
     private class CleanupTask extends SimpleTimer2.TimedEvent {
+        /** LOCKING: _selectors */
         private long _nextExpire;
 
         public CleanupTask() {
@@ -325,23 +326,28 @@ public class OutboundMessageRegistry {
 
             if (log) {
                 int e = removing.size();
-                int r = _selectors.size();
+                int r;
+                synchronized(_selectors) {
+                    r = _selectors.size();
+                }
                 int a = _activeMessages.size();
                 if (r > 0 || e > 0 || a > 0)
                     _log.debug("Expired: " + e + " remaining: " + r + " active: " + a);
             }
-            synchronized(this) {
+            synchronized(_selectors) {
                 if (_nextExpire <= now)
                     _nextExpire = now + 10*1000;
                 schedule(_nextExpire - now);
             }
         }
 
-        public synchronized void scheduleExpiration(MessageSelector sel) {
+        public void scheduleExpiration(MessageSelector sel) {
             long now = _context.clock().now();
-            if ( (_nextExpire <= now) || (sel.getExpiration() < _nextExpire) ) {
-                _nextExpire = sel.getExpiration();
-                reschedule(_nextExpire - now);
+            synchronized(_selectors) {
+                if ( (_nextExpire <= now) || (sel.getExpiration() < _nextExpire) ) {
+                    _nextExpire = sel.getExpiration();
+                    reschedule(_nextExpire - now);
+                }
             }
         }
     }