diff --git a/media/codec2/sfplugin/C2OMXNode.cpp b/media/codec2/sfplugin/C2OMXNode.cpp
index d27fe32..78d221e 100644
--- a/media/codec2/sfplugin/C2OMXNode.cpp
+++ b/media/codec2/sfplugin/C2OMXNode.cpp
@@ -76,10 +76,11 @@
             Mutexed<Jobs>::Locked jobs(mJobs);
             nsecs_t nowNs = systemTime();
             bool queued = false;
-            for (auto it = jobs->queues.begin(); it != jobs->queues.end(); ++it) {
+            for (auto it = jobs->queues.begin(); it != jobs->queues.end(); ) {
                 Queue &queue = it->second;
                 if (queue.workList.empty()
                         || nowNs - queue.lastQueuedTimestampNs < kIntervalNs) {
+                    ++it;
                     continue;
                 }
                 std::shared_ptr<Codec2Client::Component> comp = queue.component.lock();
@@ -109,6 +110,7 @@
                 }
                 jobs.lock();
 
+                it = jobs->queues.upper_bound(comp);
                 queued = true;
             }
             if (queued) {
