diff --git a/resolver/src/main/java/org/apache/felix/resolver/Candidates.java b/resolver/src/main/java/org/apache/felix/resolver/Candidates.java
index b3dc3e2..9296ab2 100644
--- a/resolver/src/main/java/org/apache/felix/resolver/Candidates.java
+++ b/resolver/src/main/java/org/apache/felix/resolver/Candidates.java
@@ -757,13 +757,16 @@
                             {
                                 List<Capability> original = ((ShadowList) cands).getOriginal();
                                 int removeIdx = original.indexOf(origCap);
-                                original.remove(removeIdx);
+                                if (removeIdx != -1)
+                                {
+                                    original.remove(removeIdx);
+                                    cands.remove(removeIdx);
+                                }
                                 int insertIdx = rc.insertHostedCapability(
                                     original,
                                     new SimpleHostedCapability(
                                         hostResource.getDeclaredResource(),
                                         origCap));
-                                cands.remove(removeIdx);
                                 cands.add(insertIdx, c);
                             }
                             // If the original capability is from the host, then
