Fix for when a bundle is removed.
diff --git a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java
index 9a4d00e..b3785e5 100644
--- a/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java
+++ b/bundles/org.eclipse.osgi/resolver/src/org/eclipse/osgi/internal/module/ResolverImpl.java
@@ -173,8 +173,10 @@
 		// Check if we wired to a reprovided package (in which case the ResolverExport doesn't exist)
 		if (matchingExport == null && exporter != null) {
 			ResolverExport reprovidedExport = new ResolverExport(exporter, importSupplier);
-			exporter.addExport(reprovidedExport);
-			resolverExports.put(reprovidedExport);
+			if (exporter.getExport(imp) == null) {
+				exporter.addExport(reprovidedExport);
+				resolverExports.put(reprovidedExport);
+			}
 			imp.setMatchingExport(reprovidedExport);
 		}
 		// If we still have a null wire and it's not optional, then we have an error
@@ -183,7 +185,7 @@
 			// TODO log error!!
 		}
 		if (imp.getMatchingExport() != null) {
-			rewireBundle(matchingExport.getExporter());
+			rewireBundle(imp.getMatchingExport().getExporter());
 		}
 	}