Removed fix for 17733.
diff --git a/bundles/org.eclipse.ui/Eclipse UI/org/eclipse/ui/internal/PartTabFolder.java b/bundles/org.eclipse.ui/Eclipse UI/org/eclipse/ui/internal/PartTabFolder.java
index 9478fcc..a9a072a 100644
--- a/bundles/org.eclipse.ui/Eclipse UI/org/eclipse/ui/internal/PartTabFolder.java
+++ b/bundles/org.eclipse.ui/Eclipse UI/org/eclipse/ui/internal/PartTabFolder.java
@@ -324,7 +324,7 @@
 	if (tabFolder != null)

 		tabFolder.dispose();

 	tabFolder = null;

-	current = null;

+	

 	active = false;

 }

 /**

@@ -496,8 +496,6 @@
 		child.setBounds(0, 0, 0, 0);

 		child.setContainer(null);

 	}

-	if(current == child)

-		current = null;

 }

 private void removeTab(CTabItem tab) {

 	// disable any d&d based on this tab

@@ -642,25 +640,28 @@
 	// remove old child from display

 	if (active) {

 		Iterator keys = mapTabToPart.keySet().iterator();

-		CTabItem tab = null;

-		LayoutPart nextPart = null;

-		boolean partIsActive = false;

 		while (keys.hasNext()) {

 			CTabItem key = (CTabItem)keys.next();

 			LayoutPart part = (LayoutPart)mapTabToPart.get(key);

 			if (part == oldChild) {

-				partIsActive = (current == oldChild);

-				tab = key;

-			} else {

-				nextPart = part;

-			}

-			if(tab != null && nextPart != null)

+				boolean partIsActive = (current == oldChild);

+				TabInfo info = new TabInfo();

+				info.part = newChild;

+				info.tabText = key.getText();

+				removeTab(key);

+				int index = 0;

+				if (invisibleChildren != null)

+					index = invisibleChildren.length;

+				invisibleChildren = arrayAdd(invisibleChildren, info, index);

+				oldChild.setBounds(new Rectangle(0, 0, 0, 0));

+				oldChild.setContainer(null);

+				newChild.setContainer(this);

+				if (tabFolder.getItemCount() > 0 && !partIsActive) {

+					setControlSize(current);

+				}

 				break;

+			}

 		}

-		if(tab != null)

-			replaceChild(oldChild, newChild, tab, partIsActive);

-		if(partIsActive && nextPart != null)

-			current = nextPart;

 	} else if (invisibleChildren != null) {

 		for (int i = 0, length = invisibleChildren.length; i < length; i++){

 			if (invisibleChildren[i].part == oldChild) {

@@ -670,22 +671,6 @@
 	}

 

 }

-private void replaceChild(LayoutPart oldChild, PartPlaceholder newChild, CTabItem key, boolean partIsActive) {

-	TabInfo info = new TabInfo();

-	info.part = newChild;

-	info.tabText = key.getText();

-	removeTab(key);

-	int index = 0;

-	if (invisibleChildren != null)

-		index = invisibleChildren.length;

-	invisibleChildren = arrayAdd(invisibleChildren, info, index);

-	oldChild.setBounds(new Rectangle(0, 0, 0, 0));

-	oldChild.setContainer(null);

-	newChild.setContainer(this);

-	if (tabFolder.getItemCount() > 0 && !partIsActive) {

-		setControlSize(current);

-	}

-}

 private void replaceChild(PartPlaceholder oldChild, LayoutPart newChild) {

 	if (invisibleChildren == null) return;