diff --git a/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/AspectBindingRegistry.java b/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/AspectBindingRegistry.java
index b16873e..3fc8384 100644
--- a/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/AspectBindingRegistry.java
+++ b/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/AspectBindingRegistry.java
@@ -50,6 +50,7 @@
 import org.eclipse.objectteams.internal.osgi.weaving.AspectBinding.TeamBinding;
 import org.eclipse.objectteams.otequinox.Constants;
 import org.osgi.framework.Bundle;
+import org.osgi.framework.wiring.BundleWiring;
 
 /**
  * An instance of this class holds the information loaded from extensions
@@ -168,6 +169,17 @@
 			} catch (Throwable t) {
 				log(t, "Invalid aspectBinding extension");
 			}
+			if (packageAdmin != null && aspectBundle != null && !binding.hasScannedTeams) {
+				@SuppressWarnings("deprecation")
+				Bundle[] baseBundles = packageAdmin.getBundles(baseBundleId, null);
+				if (baseBundles == null || baseBundles.length == 0 || (baseBundles[0].getState() < Bundle.RESOLVED)) {
+					log(IStatus.ERROR, "base bundle "+baseBundleId+" is not resolved - weaving may be incomplete.");
+				} else {
+					BundleWiring baseBundleWiring = baseBundles[0].adapt(BundleWiring.class);
+					Collection<String> boundBases = binding.scanTeamClasses(aspectBundle, DelegatingTransformer.newTransformer(binding.weavingScheme, hook, baseBundleWiring));
+					addBoundBaseClasses(boundBases);
+				}
+			}
 		}
 		// second round to connect sub/super teams to aspect bindings:
 		for (AspectBinding binding : bindings) {
diff --git a/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/Util.java b/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/Util.java
index fc341c8..8778bf2 100644
--- a/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/Util.java
+++ b/plugins/org.eclipse.objectteams.otequinox/src/org/eclipse/objectteams/internal/osgi/weaving/Util.java
@@ -60,7 +60,8 @@
 		long now= System.nanoTime();
 		long delta= (now-startTime);// / getActiveCount();
 		long total= (profileTimes[kind.ordinal()]+= delta);
-		msg = msg.substring(msg.lastIndexOf('.')+1);
+		if (kind != ProfileKind.Scan)
+			msg = msg.substring(msg.lastIndexOf('.')+1);
 //		doLog(INFO, "Profile "+kind.name()+": "+m(delta)+"("+m(total)+"/"+m(now-systemStartTime)+") ["+msg+"]");
 		System.out.println("OT/Equinox Profile "+kind.name()+": "+m(delta)+"("+m(total)+"/"+m(now-systemStartTime)+") ["+msg+"]");;
 	}
