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 ffcd219..af88da5 100644
--- a/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
+++ b/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
@@ -70,16 +70,23 @@
             if (!host.isResolved() && !Util.isFragment(host))
             {
                 ICapability[] caps = host.getCapabilities();
-                ICapability bundleCap = null;
+                ICapability hostCap = null;
                 for (int capIdx = 0; capIdx < caps.length; capIdx++)
                 {
                     if (caps[capIdx].getNamespace().equals(ICapability.HOST_NAMESPACE))
                     {
-                        bundleCap = caps[capIdx];
+                        hostCap = caps[capIdx];
                         break;
                     }
                 }
 
+                // If there is no host capability in the current module,
+                // then just ignore it.
+                if (hostCap == null)
+                {
+                    continue;
+                }
+
                 // Need to remove any previously attached, but not resolved fragments.
                 // TODO: FRAGMENT - Would be better to have the previous resolves
                 //       not leave fragments attached.
@@ -99,7 +106,7 @@
                         for (int reqIdx = 0; reqIdx < reqs.length; reqIdx++)
                         {
                             if (reqs[reqIdx].getNamespace().equals(ICapability.HOST_NAMESPACE)
-                                && reqs[reqIdx].isSatisfied(bundleCap)
+                                && reqs[reqIdx].isSatisfied(hostCap)
                                 && !((BundleImpl) fragments[fragIdx].getBundle()).isStale()
                                 && !((BundleImpl) fragments[fragIdx].getBundle()).isRemovalPending())
                             {
