diff --git a/framework/src/main/java/org/apache/felix/framework/Felix.java b/framework/src/main/java/org/apache/felix/framework/Felix.java
index ced9680..524f79b 100644
--- a/framework/src/main/java/org/apache/felix/framework/Felix.java
+++ b/framework/src/main/java/org/apache/felix/framework/Felix.java
@@ -2598,7 +2598,7 @@
             for (int i = 0; i < listenerHooks.size(); i++)
             {
                 m_registry.invokeHook((ServiceReference) listenerHooks.get(i), this, removedCallback);
-            };
+            }
         }
 
         // Invoke the ListenerHook.added() on all hooks.
@@ -2730,7 +2730,7 @@
 
         // Check to see if this a listener hook; if so, then we need
         // to invoke the callback with all existing service listeners.
-        if (m_registry.isHook(classNames, ListenerHook.class, svcObj))
+        if (ServiceRegistry.isHook(classNames, ListenerHook.class, svcObj))
         {
             m_registry.invokeHook(reg.getReference(), this, new InvokeHookCallback()
             {
@@ -3873,8 +3873,8 @@
                     }
 
                     // Before trying to resolve, tell the resolver state to
-                    // merge all fragments into host, which may result in the
-                    // rootModule changing if the real root is a module.
+                    // merge all fragments into hosts, which may result in the
+                    // rootModule changing if the root is a fragment.
                     IModule newRootModule;
                     try
                     {
@@ -3932,6 +3932,18 @@
                         }
                     }
 
+                    // Before trying to resolve, tell the resolver state to
+                    // merge all fragments into their hosts.
+                    try
+                    {
+                        m_resolverState.mergeFragments(null);
+                    }
+                    catch (Exception ex)
+                    {
+                        ex.printStackTrace();
+                        throw new ResolveException("Unable to merge fragments", importer, null);
+                    }
+
                     Object[] result = m_resolver.resolveDynamicImport(m_resolverState, importer, pkgName);
                     if (result != null)
                     {
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 88894d7..c3dad18 100644
--- a/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
+++ b/framework/src/main/java/org/apache/felix/framework/FelixResolverState.java
@@ -24,7 +24,6 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import org.apache.felix.framework.ModuleImpl;
 import org.apache.felix.framework.searchpolicy.Resolver;
 import org.apache.felix.framework.searchpolicy.PackageSource;
 import org.apache.felix.framework.util.Util;
diff --git a/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java b/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java
index 1dca93d..3531402 100644
--- a/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java
+++ b/framework/src/main/java/org/apache/felix/framework/searchpolicy/Resolver.java
@@ -39,7 +39,6 @@
 import org.apache.felix.moduleloader.IModule;
 import org.apache.felix.moduleloader.IRequirement;
 import org.apache.felix.moduleloader.IWire;
-import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
 
 public class Resolver
