diff --git a/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/editor/ActivityExplorerEditor.java b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/editor/ActivityExplorerEditor.java
index 2a19e19..01ad56f 100644
--- a/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/editor/ActivityExplorerEditor.java
+++ b/plugins/org.eclipse.amalgam.explorer.activity.ui/src/org/eclipse/amalgam/explorer/activity/ui/api/editor/ActivityExplorerEditor.java
@@ -28,13 +28,9 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.eclipse.jface.viewers.ILabelDecorator;
-import org.eclipse.osgi.framework.adaptor.BundleClassLoader;
-import org.eclipse.osgi.framework.adaptor.ClassLoaderDelegate;
-import org.eclipse.osgi.internal.loader.BundleLoader;
 import org.eclipse.sirius.business.api.session.Session;
 import org.eclipse.sirius.business.api.session.SessionListener;
 import org.eclipse.sirius.business.api.session.SessionStatus;
@@ -51,7 +47,6 @@
 import org.eclipse.ui.forms.editor.IFormPage;
 import org.eclipse.ui.forms.editor.SharedHeaderFormEditor;
 import org.eclipse.ui.part.IPageSite;
-import org.eclipse.ui.statushandlers.StatusManager;
 import org.eclipse.ui.views.properties.IPropertySheetPage;
 import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
@@ -332,23 +327,9 @@
 	@Override
 	public void doSave(IProgressMonitor monitor) {
 		if (isDirty()) {
-		  try {
-			  getEditorInput().getSession().save(new NullProgressMonitor());
-	    } catch (RuntimeException ite) {
-	      StatusManager.getManager().handle(new Status(IStatus.ERROR, getBundleId(ite), ite.getMessage(), ite), StatusManager.BLOCK);
-	    }
+			getEditorInput().getSession().save(new NullProgressMonitor());
 		}
 	}
-	
-	String getBundleId(Object obj) {
-    ClassLoader cl = obj.getClass().getClassLoader();
-    if (cl instanceof BundleClassLoader) {
-      ClassLoaderDelegate delegate = ((BundleClassLoader) cl).getDelegate();
-      if (delegate instanceof BundleLoader)
-        return ((BundleLoader) delegate).getBundle().getSymbolicName();
-    }
-    return obj.getClass().getCanonicalName();
-	}
 
 	/**
 	 * @see org.eclipse.ui.part.EditorPart#doSaveAs()
