fix for bug 70829
perspective sort order in preference page
diff --git a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/PerspectivesPreferencePage.java b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/PerspectivesPreferencePage.java
index b271e2e..ba4a69b 100644
--- a/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/PerspectivesPreferencePage.java
+++ b/bundles/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/PerspectivesPreferencePage.java
@@ -11,7 +11,10 @@
 
 package org.eclipse.ui.internal.dialogs;
 
+import java.text.Collator;
 import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
 
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.MessageDialog;
@@ -105,6 +108,19 @@
 			.getString("OpenPerspectiveMode.newWindow"); //$NON-NLS-1$
 
 	/**
+	 * <code>Comparator</code> to compare two perspective descriptors
+	 */
+    private Comparator comparator = new Comparator() {
+        private Collator collator = Collator.getInstance();
+
+        public int compare(Object ob1, Object ob2) {
+            IPerspectiveDescriptor d1 = (IPerspectiveDescriptor) ob1;
+            IPerspectiveDescriptor d2 = (IPerspectiveDescriptor) ob2;
+            return collator.compare(d1.getLabel(), d2.getLabel());
+        }
+    };
+    
+	/**
 	 * Creates the page's UI content.
 	 */
 	protected Control createContents(Composite parent) {
@@ -285,6 +301,7 @@
 		perspectives = new ArrayList(persps.length);
 		for (int i = 0; i < persps.length; i++)
 			perspectives.add(i, persps[i]);
+		Collections.sort(perspectives, comparator);
 		defaultPerspectiveId = perspectiveRegistry.getDefaultPerspective();
 		updateList();