diff --git a/impl/src/main/java/org/opencord/olt/impl/Olt.java b/impl/src/main/java/org/opencord/olt/impl/Olt.java
index 8f035bf..c5f7806 100644
--- a/impl/src/main/java/org/opencord/olt/impl/Olt.java
+++ b/impl/src/main/java/org/opencord/olt/impl/Olt.java
@@ -649,16 +649,11 @@
         } finally {
             queueReadLock.unlock();
         }
-        if (!q.contains(sub)) {
-            log.info("Adding subscriber to queue: {} with status {} and subscriber {}",
-                    portWithName(sub.port), sub.status, sub.hasSubscriber);
-            q.add(sub);
-        } else {
-            log.debug("Not adding subscriber to queue as already present: {} with status {}",
-                    portWithName(sub.port), sub.status);
-            // no need to update the queue in the map if nothing has changed
-            return;
-        }
+
+        log.info("Adding subscriber to queue: {} with status {} and subscriber {}",
+                portWithName(sub.port), sub.status, sub.hasSubscriber);
+        q.add(sub);
+
         try {
             queueWriteLock.lock();
             eventsQueues.put(cp, q);
@@ -776,8 +771,11 @@
                             clearQueueForDevice(deviceId);
                         } else {
                             log.info("Device {} availability changed to false, but ports are still available, " +
-                                            "assuming temporary disconnection. Ports: {}",
-                                    deviceId, deviceService.getPorts(deviceId));
+                                            "assuming temporary disconnection.",
+                                    deviceId);
+                            if (log.isTraceEnabled()) {
+                                log.trace("Available ports: {}",  deviceService.getPorts(deviceId));
+                            }
                         }
                         return;
                     case DEVICE_REMOVED:
