diff --git a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/ModelUtil.java b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/ModelUtil.java
index d2174f7..78b58a3 100644
--- a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/ModelUtil.java
+++ b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/utils/ModelUtil.java
@@ -1794,4 +1794,10 @@
 		}
 		return false;
 	}
+
+	// FIXME: update Switchyard to use new API 
+	@Deprecated
+	public static String toDisplayName(String name) {
+		return toCanonicalString(name);
+	}
 }
diff --git a/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/JBPM5RuntimeExtension.java b/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/JBPM5RuntimeExtension.java
index dc07017..2a57aae 100644
--- a/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/JBPM5RuntimeExtension.java
+++ b/org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5/src/org/eclipse/bpmn2/modeler/runtime/jboss/jbpm5/JBPM5RuntimeExtension.java
@@ -23,10 +23,7 @@
 
 import org.eclipse.bpmn2.Activity;
 import org.eclipse.bpmn2.DataInput;
-import org.eclipse.bpmn2.DataObject;
 import org.eclipse.bpmn2.DataOutput;
-import org.eclipse.bpmn2.Error;
-import org.eclipse.bpmn2.Escalation;
 import org.eclipse.bpmn2.Event;
 import org.eclipse.bpmn2.Gateway;
 import org.eclipse.bpmn2.Interface;
@@ -38,7 +35,6 @@
 import org.eclipse.bpmn2.ScriptTask;
 import org.eclipse.bpmn2.SendTask;
 import org.eclipse.bpmn2.SequenceFlow;
-import org.eclipse.bpmn2.Signal;
 import org.eclipse.bpmn2.Task;
 import org.eclipse.bpmn2.modeler.core.IBpmn2RuntimeExtension;
 import org.eclipse.bpmn2.modeler.core.IBpmn2RuntimeExtension2;
@@ -76,25 +72,23 @@
 import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.wid.WIDHandler;
 import org.eclipse.bpmn2.modeler.runtime.jboss.jbpm5.wid.WorkItemDefinition;
 import org.eclipse.bpmn2.modeler.ui.DefaultBpmn2RuntimeExtension.RootElementParser;
+import org.eclipse.bpmn2.modeler.ui.editor.BPMN2Editor;
 import org.eclipse.bpmn2.modeler.ui.wizards.FileService;
+import org.eclipse.core.resources.IContainer;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IResourceVisitor;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.Path;
-import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.transaction.NotificationFilter;
-import org.eclipse.emf.transaction.ResourceSetChangeEvent;
-import org.eclipse.emf.transaction.RollbackException;
 import org.eclipse.graphiti.ui.editor.DiagramEditor;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.osgi.util.NLS;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IEditorInput;
 import org.xml.sax.InputSource;
@@ -197,13 +191,14 @@
 			// In this case we may want to explicitly make the editor read-only
 		}
 
-		IProject project = Bpmn2Preferences.getActiveProject();
-		if (project != null) {
+		IFile inputFile = ((BPMN2Editor) editor).getModelFile();
+		if (inputFile!=null) {
+			IContainer folder = inputFile.getParent();
 			getWorkItemDefinitions();
 			workItemDefinitions.clear();
 			try {
 				final WIDResourceVisitor visitor = new WIDResourceVisitor();
-				project.accept(visitor, IResource.DEPTH_INFINITE, false);
+				folder.accept(visitor, IResource.DEPTH_INFINITE, false);
 				if (visitor.getWIDFiles().size() > 0) {
 					Iterator<IFile> fileIter = visitor.getWIDFiles().iterator();
 					while (fileIter.hasNext()) {
@@ -233,12 +228,11 @@
 									public void run() {
 										MessageDialog.openError(Display.getDefault().getActiveShell(),
 												Messages.JBPM5RuntimeExtension_Duplicate_Task_Title,
-												Messages.JBPM5RuntimeExtension_Duplicate_Task_Message+
-												ctd.getId()+
-												"' was already defined.\n"+ //$NON-NLS-1$
-												"The new Custom Task defined in the file: "+ //$NON-NLS-1$
-												wid.getDefinitionFile().getFullPath().toString()+"\n"+ //$NON-NLS-1$
-												"will be ignored."); //$NON-NLS-1$
+												NLS.bind(
+														Messages.JBPM5RuntimeExtension_Duplicate_Task_Message,
+														ctd.getId(),
+														wid.getDefinitionFile().getFullPath().toString())
+												);
 									}
 								});
 							}
