diff --git a/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java b/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
index 453b080..e061ad9 100644
--- a/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
+++ b/framework/src/main/java/org/apache/felix/framework/resolver/ResolverImpl.java
@@ -479,8 +479,24 @@
             // Use wires to get actual requirements and satisfying capabilities.
             for (Wire wire : module.getWires())
             {
-                reqs.add(wire.getRequirement());
-                caps.add(wire.getCapability());
+                // Wrap the requirement as a hosted requirement
+                // if it comes from a fragment, since we will need
+                // to know the host.
+                Requirement r = wire.getRequirement();
+                if (!r.getModule().equals(wire.getImporter()))
+                {
+                    r = new WrappedRequirement(wire.getImporter(), r);
+                }
+                // Wrap the capability as a hosted capability
+                // if it comes from a fragment, since we will need
+                // to know the host.
+                Capability c = wire.getCapability();
+                if (!c.getModule().equals(wire.getExporter()))
+                {
+                    c = new WrappedCapability(wire.getExporter(), c);
+                }
+                reqs.add(r);
+                caps.add(c);
             }
 
             // Since the module is resolved, it could be dynamically importing,
diff --git a/framework/src/main/java/org/apache/felix/framework/resolver/WrappedModule.java b/framework/src/main/java/org/apache/felix/framework/resolver/WrappedModule.java
index 59c9b7b..5daacaa 100644
--- a/framework/src/main/java/org/apache/felix/framework/resolver/WrappedModule.java
+++ b/framework/src/main/java/org/apache/felix/framework/resolver/WrappedModule.java
@@ -137,6 +137,11 @@
         return m_cachedRequirements;
     }
 
+    public String toString()
+    {
+        return m_module.getId();
+    }
+
     public Map getHeaders()
     {
         throw new UnsupportedOperationException("Not supported yet.");
