diff --git a/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java b/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
index 7b7f403..d563538 100644
--- a/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
+++ b/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
@@ -361,9 +361,8 @@
             reqs = fragment.getRequirements();
             Map ipFragment = new HashMap();
             Map rbFragment = new HashMap();
-            boolean conflicting = false;
             for (int reqIdx = 0;
-                !conflicting && (reqs != null) && (reqIdx < reqs.length);
+                (reqs != null) && (reqIdx < reqs.length);
                 reqIdx++)
             {
                 if (reqs[reqIdx].getNamespace().equals(ICapability.PACKAGE_NAMESPACE)
@@ -384,10 +383,6 @@
                     else if (isRequirementConflicting(
                         (Requirement) existing[REQ_IDX], (Requirement) reqs[reqIdx]))
                     {
-                        conflicting = true;
-                    }
-                    if (conflicting)
-                    {
                         ipFragment.clear();
                         rbFragment.clear();
                         it.remove();
@@ -400,6 +395,8 @@
                                 ? "imported package " : "required bundle ")
                             + targetName + " from "
                             + ((IModule) existing[MODULE_IDX]).getSymbolicName());
+                        // No need to finish processing current fragment.
+                        break;
                     }
                 }
             }
