diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java
index cb0b9ce..0f9cc3f 100644
--- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java
+++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverBundle.java
@@ -381,13 +381,21 @@
 		if (isFragment())
 			return new ResolverExport[0]; // cannot attach to fragments;
 
+		ImportPackageSpecification[] newImports = fragment.getBundle().getImportPackages();
+		BundleSpecification[] newRequires = fragment.getBundle().getRequiredBundles();
+		ExportPackageDescription[] newExports = fragment.getBundle().getExportPackages();
+
+		if (newImports.length > 0 || newRequires.length > 0 || newExports.length > 0) {
+			if (isResolved())
+				return new ResolverExport[0];
+		}
+
 		initFragments();
 		if (fragments.contains(fragment))
 			return new ResolverExport[0];
 		fragments.add(fragment);
 		fragment.getHost().addMatchingBundle(this);
 
-		ImportPackageSpecification[] newImports = fragment.getBundle().getImportPackages();
 		if (newImports.length > 0) {
 			ArrayList hostImports = new ArrayList(newImports.length);
 			for (int i = 0; i < newImports.length; i++)
@@ -396,7 +404,6 @@
 			fragmentImports.put(fragment.bundleID, hostImports);
 		}
 
-		BundleSpecification[] newRequires = fragment.getBundle().getRequiredBundles();
 		if (newRequires.length > 0) {
 			ArrayList hostRequires = new ArrayList(newRequires.length);
 			for (int i = 0; i < newRequires.length; i++)
@@ -405,7 +412,6 @@
 			fragmentRequires.put(fragment.bundleID, hostRequires);
 		}
 
-		ExportPackageDescription[] newExports = fragment.getBundle().getExportPackages();
 		ArrayList hostExports = new ArrayList(newExports.length);
 		if (newExports.length > 0 && addExports) {
 			StateObjectFactory factory = bundle.getContainingState().getFactory();
