diff --git a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java
index 814f402..412ac59 100644
--- a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java
+++ b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResolverImpl.java
@@ -193,16 +193,16 @@
                         // can resolve.
                         while ((candidate == null) && !candidateCapabilities.isEmpty())
                         {
-                            Resource bestResource = (Resource) getBestCandidate(candidateCapabilities);
+                            Capability bestCapability = getBestCandidate(candidateCapabilities);
 
                             // Try to resolve the best resource.
-                            if (resolve(bestResource))
+                            if (resolve(((CapabilityImpl) bestCapability).getResource()))
                             {
-                                candidate = bestResource;
+                                candidate = ((CapabilityImpl) bestCapability).getResource();
                             }
                             else
                             {
-                                candidateCapabilities.remove(bestResource);
+                                candidateCapabilities.remove(bestCapability);
                             }
                         }
                     }
@@ -380,7 +380,7 @@
      * @param resources
      * @return
      */
-    private Resource getBestCandidate(List caps)
+    private Capability getBestCandidate(List caps)
     {
         Version bestVersion = null;
         Capability best = null;
@@ -434,7 +434,7 @@
             }
         }
 
-        return (best == null) ? null : ((CapabilityImpl) best).getResource();
+        return (best == null) ? null : best;
     }
 
     public synchronized void deploy(boolean start)
diff --git a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResourceImpl.java b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResourceImpl.java
index bd2925f..4f52b9d 100644
--- a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResourceImpl.java
+++ b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/ResourceImpl.java
@@ -67,12 +67,12 @@
 
     public boolean equals(Object o)
     {
-        if (getSymbolicName() == null || getVersion() == null)
-        {
-            return this == o;
-        }
         if (o instanceof Resource)
         {
+            if (getSymbolicName() == null || getVersion() == null)
+            {
+                return this == o;
+            }
             return getSymbolicName().equals(((Resource) o).getSymbolicName())
                 && getVersion().equals(((Resource) o).getVersion());
         }
