*fix
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/scriptview/ScriptExplorerPart.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/scriptview/ScriptExplorerPart.java
index ff7618e..87b692d 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/scriptview/ScriptExplorerPart.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/scriptview/ScriptExplorerPart.java
@@ -1783,9 +1783,13 @@
 
 	private void setComparator() {
 		if (getRootMode() == ScriptExplorerPart.WORKING_SETS_AS_ROOTS) {
-			fViewer.setComparator(new WorkingSetAwareModelElementSorter());
+			WorkingSetAwareModelElementSorter comparator = new WorkingSetAwareModelElementSorter();
+			comparator.setInnerElements(false);
+			fViewer.setComparator(comparator);
 		} else {
-			fViewer.setComparator(new ModelElementSorter());
+			ModelElementSorter comparator = new ModelElementSorter();
+			comparator.setInnerElements(false);
+			fViewer.setComparator(comparator);
 		}
 	}
 
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/ModelElementSorter.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/ModelElementSorter.java
index 596da8b..8ac9765 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/ModelElementSorter.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/ModelElementSorter.java
@@ -71,6 +71,7 @@
 	private MembersOrderPreferenceCache fMemberOrderCache;
 	private Collator fNewCollator; // collator from ICU
 
+	private boolean innerElements = true;
 	/**
 	 * Constructor.
 	 */
@@ -80,6 +81,17 @@
 				.getMemberOrderPreferenceCache();
 		fNewCollator = null;
 	}
+	
+
+	public boolean isInnerElements() {
+		return innerElements;
+	}
+
+
+	public void setInnerElements(boolean innerElements) {
+		this.innerElements = innerElements;
+	}
+
 
 	/*
 	 * @see ViewerSorter#category
@@ -197,7 +209,14 @@
 
 		String name1 = getElementName(e1);
 		String name2 = getElementName(e2);
-
+		
+		//If 
+		if( !this.isInnerElements() && e1 instanceof IModelElement ) {
+			IModelElement me = (IModelElement) e1;
+			if( me.getElementType() > IModelElement.BINARY_MODULE ) {
+				return 0;
+			}
+		}
 		if (e1 instanceof IType) { // handle anonymous types
 			if (name1.length() == 0) {
 				if (name2.length() == 0) {