diff --git a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartFactory.java b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartFactory.java
index bd955e3..25b3424 100644
--- a/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartFactory.java
+++ b/bundles/org.eclipse.e4.ui.workbench/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartFactory.java
@@ -2,7 +2,6 @@
 
 import org.eclipse.e4.core.services.context.IEclipseContext;
 import org.eclipse.e4.ui.model.application.MCommand;
-import org.eclipse.e4.ui.model.application.MContributedPart;
 import org.eclipse.e4.ui.model.application.MHandledItem;
 import org.eclipse.e4.ui.model.application.MHandler;
 import org.eclipse.e4.ui.model.application.MMenu;
@@ -30,12 +29,12 @@
 	}
 
 	protected void activate(MPart part) {
-		System.out.print("Activating"); //$NON-NLS-1$
-		if (part instanceof MContributedPart) {
-			System.out.println(": " + ((MContributedPart) part).getName()); //$NON-NLS-1$
-		} else {
-			System.out.println(" part without name"); //$NON-NLS-1$
-		}
+		//System.out.print("Activating"); //$NON-NLS-1$
+		//if (part instanceof MContributedPart) {
+		//	System.out.println(": " + ((MContributedPart) part).getName()); //$NON-NLS-1$
+		//} else {
+		//	System.out.println(" part without name"); //$NON-NLS-1$
+		//}
 		internalActivate(part, getContext(part));
 	}
 
@@ -45,7 +44,7 @@
 			parent.setActiveChild(part);
 			IEclipseContext parentContext = getContext(parent);
 			if (parentContext != null) {
-				if (context != null) {
+				if (context != null && context != parentContext) {
 					parentContext.set(IServiceConstants.ACTIVE_CHILD, context);
 				}
 				context = parentContext;
