diff --git a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/DSEditor.java b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/DSEditor.java
index fc47c8e..bec71b0 100644
--- a/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/DSEditor.java
+++ b/modeling/plugins/org.eclipse.pde.ds.ui/src/org/eclipse/pde/ds/ui/internal/editor/DSEditor.java
@@ -8,13 +8,13 @@
  * Contributors:
  *     Anyware Technologies - initial API and implementation
  *
- * $Id: DSEditor.java,v 1.11 2009/07/18 13:52:29 bcabe Exp $
+ * $Id: DSEditor.java,v 1.12 2009/09/13 18:04:02 bcabe Exp $
  */
 package org.eclipse.pde.ds.ui.internal.editor;
 
 import java.util.ArrayList;
 import java.util.List;
-import org.eclipse.core.resources.*;
+import org.eclipse.core.resources.IResourceChangeListener;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.pde.ds.scr.Component;
 import org.eclipse.pde.ds.scr.provider.ScrItemProviderAdapterFactory;
@@ -41,13 +41,6 @@
 	}
 
 	@Override
-	public void createModel() {
-		super.createModel();
-
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(this, IResourceChangeEvent.POST_CHANGE);
-	}
-
-	@Override
 	protected List<AbstractEmfFormPage> getPagesToAdd() throws PartInitException {
 		List<AbstractEmfFormPage> pages = new ArrayList<AbstractEmfFormPage>(1);
 
@@ -72,12 +65,6 @@
 	}
 
 	@Override
-	public void dispose() {
-		ResourcesPlugin.getWorkspace().removeResourceChangeListener(this);
-		super.dispose();
-	}
-
-	@Override
 	protected AdapterFactory getSpecificAdapterFactory() {
 		return new ScrItemProviderAdapterFactory();
 	}
