diff --git a/hk2-runlevel/src/main/java/org/glassfish/hk2/runlevel/internal/CurrentTaskFuture.java b/hk2-runlevel/src/main/java/org/glassfish/hk2/runlevel/internal/CurrentTaskFuture.java
index f7118b8..8006435 100755
--- a/hk2-runlevel/src/main/java/org/glassfish/hk2/runlevel/internal/CurrentTaskFuture.java
+++ b/hk2-runlevel/src/main/java/org/glassfish/hk2/runlevel/internal/CurrentTaskFuture.java
@@ -1410,7 +1410,7 @@
         @Override
         public void run() {
             for (;;) {
-                ActiveDescriptor<?> job = null;
+                ActiveDescriptor<?> job;
                 queueLock.lock();
                 try {
                     if (caput) return;
@@ -1419,15 +1419,14 @@
                         queueCondition.signal();
                         return;
                     }
-                    job = queue.remove(0);
+                    job = queue.get(0);
                 } finally {
                     queueLock.unlock();
                 }
                 
                 try {
                     locator.getServiceHandle(job).destroy();
-                }
-                catch (Throwable th) {
+                } catch (Throwable th) {
                     queueLock.lock();
                     try {
                         parent.lastError = th;
@@ -1436,6 +1435,13 @@
                     } finally {
                         queueLock.unlock();
                     }
+                } finally {
+                    queueLock.lock();
+                    try {
+                        queue.remove(job);
+                    } finally {
+                        queueLock.unlock();
+                    }
                 }
             }
             
