diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchAdvisor.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchAdvisor.java
index 2886065..86854d1 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchAdvisor.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchAdvisor.java
@@ -44,6 +44,7 @@
 import org.eclipse.ui.application.WorkbenchAdvisor;
 import org.eclipse.ui.application.WorkbenchWindowAdvisor;
 import org.eclipse.ui.ide.IDE;
+import org.eclipse.ui.internal.decorators.DecoratorUpdateListener;
 import org.eclipse.ui.internal.ide.model.WorkbenchAdapterBuilder;
 import org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog;
 import org.eclipse.ui.progress.IProgressService;
@@ -185,6 +186,7 @@
         try {
             refreshFromLocal();
             checkUpdates();
+            DecoratorUpdateListener.startUp();
         } finally {//Resume background jobs after we startup
             Platform.getJobManager().resume();
         }
@@ -206,6 +208,14 @@
             disconnectFromWorkspace();
         }
     }
+    
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.application.WorkbenchAdvisor#preShutdown()
+     */
+    public boolean preShutdown() {
+    	DecoratorUpdateListener.shutDown();
+    	return super.preShutdown();
+    }
 
     /* (non-Javadoc)
      * @see org.eclipse.ui.application.WorkbenchAdvisor#eventLoopException
diff --git a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchPlugin.java b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchPlugin.java
index 6177880..8e802ba 100644
--- a/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchPlugin.java
+++ b/bundles/org.eclipse.ui.ide/src/org/eclipse/ui/internal/ide/IDEWorkbenchPlugin.java
@@ -26,13 +26,11 @@
 import org.eclipse.core.runtime.Platform;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.custom.BusyIndicator;
-import org.eclipse.ui.internal.decorators.DecoratorUpdateListener;
 import org.eclipse.ui.internal.ide.registry.CapabilityRegistry;
 import org.eclipse.ui.internal.ide.registry.MarkerImageProviderRegistry;
 import org.eclipse.ui.internal.ide.registry.ProjectImageRegistry;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
 import org.osgi.framework.Bundle;
-import org.osgi.framework.BundleContext;
 
 /**
  * This internal class represents the top of the IDE workbench.
@@ -323,19 +321,5 @@
 		return imageDescriptorFromPlugin(IDE_WORKBENCH, ICONS_PATH + relativePath);
 	}
 	
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext)
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-		DecoratorUpdateListener.startUp();
-	}
 	
-	/* (non-Javadoc)
-	 * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		DecoratorUpdateListener.shutDown();
-	}
 }
