diff --git a/org.eclipse.osbp.xtext.menu.ui/META-INF/MANIFEST.MF b/org.eclipse.osbp.xtext.menu.ui/META-INF/MANIFEST.MF
index 6980a01..8d5da3c 100644
--- a/org.eclipse.osbp.xtext.menu.ui/META-INF/MANIFEST.MF
+++ b/org.eclipse.osbp.xtext.menu.ui/META-INF/MANIFEST.MF
@@ -21,11 +21,11 @@
  javax.validation.api;bundle-version="1.1.0",
  org.eclipse.xtext.ui.codetemplates.ui;bundle-version="[2.11.0,2.12.0)",
  org.eclipse.compare,
- org.eclipse.osbp.fork.mihalis.opal.imageSelector.osgi;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.basic.ui;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.oxtype;bundle-version="[0.9.0,0.10.0)",
  org.eclipse.osbp.xtext.oxtype.ui;bundle-version="[0.9.0,0.10.0)",
- org.eclipse.xtend.lib;resolution:=optional
+ org.eclipse.xtend.lib;resolution:=optional,
+ org.mihalis.opal;bundle-version="1.0.3"
 Import-Package: org.apache.log4j
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.osbp.xtext.menu.ui.quickfix;version="0.9.0",
diff --git a/org.eclipse.osbp.xtext.menu.ui/src/org/eclipse/osbp/xtext/menu/ui/contentassist/MenuDslProposalProvider.xtend b/org.eclipse.osbp.xtext.menu.ui/src/org/eclipse/osbp/xtext/menu/ui/contentassist/MenuDslProposalProvider.xtend
index 874e1dd..a7fd9ee 100644
--- a/org.eclipse.osbp.xtext.menu.ui/src/org/eclipse/osbp/xtext/menu/ui/contentassist/MenuDslProposalProvider.xtend
+++ b/org.eclipse.osbp.xtext.menu.ui/src/org/eclipse/osbp/xtext/menu/ui/contentassist/MenuDslProposalProvider.xtend
@@ -22,7 +22,6 @@
 import com.google.inject.Inject
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.jface.viewers.StyledString
-import org.eclipse.osbp.fork.mihalis.opal.widgets.ImageSelectorDialog
 import org.eclipse.osbp.xtext.basic.ui.contentassist.BasicDSLProposalProviderHelper
 import org.eclipse.osbp.xtext.menu.MenuEntry
 import org.eclipse.osbp.xtext.menu.ui.MenuDSLDocumentationTranslator
@@ -36,6 +35,7 @@
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext
 import org.eclipse.xtext.ui.editor.contentassist.ICompletionProposalAcceptor
 import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier
+import org.mihalis.opal.imageSelector.ImageSelectorDialog
 
 class ImageFileNameTextApplier extends ReplacementTextApplier {
 	var ContentAssistContext context
diff --git a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/ImageFileNameTextApplier.java b/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/ImageFileNameTextApplier.java
index 071fff9..bb60c4b 100644
--- a/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/ImageFileNameTextApplier.java
+++ b/org.eclipse.osbp.xtext.menu.ui/xtend-gen/org/eclipse/osbp/xtext/menu/ui/contentassist/ImageFileNameTextApplier.java
@@ -16,13 +16,13 @@
  */
 package org.eclipse.osbp.xtext.menu.ui.contentassist;
 
-import org.eclipse.osbp.fork.mihalis.opal.widgets.ImageSelectorDialog;
 import org.eclipse.swt.layout.FillLayout;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.xtext.ui.editor.contentassist.ConfigurableCompletionProposal;
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
 import org.eclipse.xtext.ui.editor.contentassist.ReplacementTextApplier;
+import org.mihalis.opal.imageSelector.ImageSelectorDialog;
 
 @SuppressWarnings("all")
 public class ImageFileNameTextApplier extends ReplacementTextApplier {
diff --git a/org.eclipse.osbp.xtext.menu/emf-gen/org/eclipse/osbp/xtext/menu/MenuDslPackage.java b/org.eclipse.osbp.xtext.menu/emf-gen/org/eclipse/osbp/xtext/menu/MenuDslPackage.java
index e09de66..fdf3f6d 100644
--- a/org.eclipse.osbp.xtext.menu/emf-gen/org/eclipse/osbp/xtext/menu/MenuDslPackage.java
+++ b/org.eclipse.osbp.xtext.menu/emf-gen/org/eclipse/osbp/xtext/menu/MenuDslPackage.java
@@ -207,7 +207,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MENU_PACKAGE___ERESOLVE_PROXY__OBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int MENU_PACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Menu Package</em>' class.
@@ -352,7 +352,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MENU_CATEGORY___ERESOLVE_PROXY__OBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int MENU_CATEGORY___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Menu Category</em>' class.
@@ -425,7 +425,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MENU_TREE___ERESOLVE_PROXY__OBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int MENU_TREE___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Menu Tree</em>' class.
@@ -543,7 +543,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MENU_ENTRY___ERESOLVE_PROXY__OBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
+	int MENU_ENTRY___ERESOLVE_PROXY__INTERNALEOBJECT = OSBPTypesPackage.LPACKAGE___ERESOLVE_PROXY__INTERNALEOBJECT;
 
 	/**
 	 * The number of operations of the '<em>Menu Entry</em>' class.
