diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfFormEditor.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfFormEditor.java
index e06828d..21f88c0 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfFormEditor.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/editor/EmfFormEditor.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: EmfFormEditor.java,v 1.34 2009/12/08 16:52:43 bcabe Exp $
+ * $Id: EmfFormEditor.java,v 1.35 2009/12/22 14:19:11 bcabe Exp $
  */
 package org.eclipse.pde.emfforms.editor;
 
@@ -653,6 +653,7 @@
 		if (contentOutlinePage == null) {
 			contentOutlinePage = new EmfContentOutlinePage(this);
 			contentOutlinePage.setViewerInput(getEditorConfig().getOutlineInput(getCurrentEObject()));
+			contentOutlinePage.setViewerComparator(getOutlineComparator());
 
 			// Listen to selection so that we can handle it is a special way.
 			contentOutlinePage.addSelectionChangedListener(new ISelectionChangedListener() {
@@ -674,6 +675,14 @@
 	}
 
 	/**
+	 * Subclasses may override this method to provide their own {@link ViewerComparator} to be used in the outline's {@link TreeViewer}. It could be useful in case you want to rearrange elements
+	 * @return the {@link ViewerComparator} to use to render the outline's {@link TreeViewer}. Default implementation return <code>null</code>
+	 */
+	protected ViewerComparator getOutlineComparator() {
+		return null;
+	}
+
+	/**
 	 * This deals with how we want selection in the outline to affect the other views.<br><br>
 	 * <strong>Clients can override this method</strong> to have some special behaviour on selection changed events in the outline, such
 	 * as giving focus to a particular page of the editor. 
diff --git a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/internal/editor/EmfContentOutlinePage.java b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/internal/editor/EmfContentOutlinePage.java
index ac63b09..e253e68 100644
--- a/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/internal/editor/EmfContentOutlinePage.java
+++ b/modeling/plugins/org.eclipse.pde.emfforms/src/org/eclipse/pde/emfforms/internal/editor/EmfContentOutlinePage.java
@@ -8,7 +8,7 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: EmfFormEditor.java,v 1.23 2009/09/11 21:18:00 bcabe Exp $
+ * $Id: EmfContentOutlinePage.java,v 1.1 2009/09/12 12:57:54 bcabe Exp $
  */
 package org.eclipse.pde.emfforms.internal.editor;
 
@@ -40,6 +40,8 @@
 
 	private Object viewerInput;
 
+	private ViewerComparator viewerComparator;
+
 	public EmfContentOutlinePage(EmfFormEditor<? extends EObject> editor) {
 		this.editor = editor;
 	}
@@ -54,6 +56,7 @@
 		contentOutlineViewer.setContentProvider(new AdapterFactoryContentProvider(editor.getAdapterFactory()));
 		contentOutlineViewer.setLabelProvider(new DecoratingLabelProvider(new AdapterFactoryLabelProvider(editor.getAdapterFactory()), PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator()));
 		contentOutlineViewer.setInput(viewerInput);
+		contentOutlineViewer.setComparator(viewerComparator);
 		contentOutlineViewer.addFilter(new ViewerFilter() {
 			@Override
 			public boolean select(Viewer viewer, Object parentElement, Object element) {
@@ -108,6 +111,10 @@
 		this.viewerInput = viewerInput;
 	}
 
+	public void setViewerComparator(ViewerComparator comparator) {
+		this.viewerComparator = comparator;
+	}
+
 	public TreeViewer getViewer() {
 		return contentOutlineViewer;
 	}
