diff --git a/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java b/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java
index 9a98d33..2e2add3 100644
--- a/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java
+++ b/resolver/src/main/java/org/apache/felix/resolver/ResolverImpl.java
@@ -2355,6 +2355,7 @@
     {
         private final Executor executor;
         private final AtomicInteger count = new AtomicInteger();
+        private Throwable throwable;
 
         public EnhancedExecutor(Executor executor)
         {
@@ -2372,6 +2373,16 @@
                     {
                         runnable.run();
                     }
+                    catch (Throwable t)
+                    {
+                        synchronized (count)
+                        {
+                            if (throwable == null)
+                            {
+                                throwable = t;
+                            }
+                        }
+                    }
                     finally
                     {
                         if (count.decrementAndGet() == 0)
@@ -2400,6 +2411,21 @@
                     {
                         throw new IllegalStateException(e);
                     }
+                    if (throwable != null)
+                    {
+                        if (throwable instanceof RuntimeException)
+                        {
+                            throw (RuntimeException) throwable;
+                        }
+                        else if (throwable instanceof Error)
+                        {
+                            throw (Error) throwable;
+                        }
+                        else
+                        {
+                            throw new RuntimeException(throwable);
+                        }
+                    }
                 }
             }
         }
