diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java
index 35d67a2..4dc1e7e 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/editors/project/ExportPackagesSection.java
@@ -112,8 +112,7 @@
                 // Add corresponding imports (maybe)
                 boolean importsAdded = false;
 
-                IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
-                boolean shouldAddImports = OptionalPrompt.optionallyPrompt( store,
+                boolean shouldAddImports = OptionalPrompt.optionallyPrompt(
                     SigilCore.PREFERENCES_ADD_IMPORT_FOR_EXPORT, "Add Exports",
                     "Should corresponding imports be added?", getSection().getShell() );
                 if ( shouldAddImports )
@@ -199,8 +198,7 @@
         {
             boolean importsRemoved = false;
 
-            IPreferenceStore store = SigilCore.getDefault().getPreferenceStore();
-            boolean shouldRemoveImports = OptionalPrompt.optionallyPrompt( store,
+            boolean shouldRemoveImports = OptionalPrompt.optionallyPrompt( 
                 SigilCore.PREFERENCES_REMOVE_IMPORT_FOR_EXPORT, "Remove Exports",
                 "Should corresponding imports be removed?", getSection().getShell() );
             
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/OptionalPrompt.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/OptionalPrompt.java
index 82a94cb..917be06 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/OptionalPrompt.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/preferences/OptionalPrompt.java
@@ -20,6 +20,7 @@
 package org.apache.felix.sigil.ui.eclipse.ui.preferences;
 
 
+import org.apache.felix.sigil.eclipse.SigilCore;
 import org.apache.felix.sigil.eclipse.preferences.PromptablePreference;
 import org.eclipse.jface.dialogs.IDialogConstants;
 import org.eclipse.jface.dialogs.MessageDialogWithToggle;
@@ -29,6 +30,11 @@
 
 public class OptionalPrompt
 {
+    public static boolean optionallyPrompt( String prefName, String title, String text, Shell parentShell) 
+    {
+        return optionallyPrompt(SigilCore.getDefault().getPreferenceStore(), prefName, title, text, parentShell);
+    }
+    
     public static boolean optionallyPrompt( IPreferenceStore prefStore, String prefName, String title, String text,
         Shell parentShell )
     {
@@ -58,7 +64,12 @@
         return result;
     }
 
-
+    public static int optionallyPromptWithCancel( String prefName, String title,
+        String text, Shell parentShell )
+    {
+        return optionallyPromptWithCancel(SigilCore.getDefault().getPreferenceStore(), prefName, title, text, parentShell);
+    }
+    
     public static int optionallyPromptWithCancel( IPreferenceStore prefStore, String prefName, String title,
         String text, Shell parentShell )
     {
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/util/ProjectUtils.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/util/ProjectUtils.java
index 9c7f01a..11c0746 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/util/ProjectUtils.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/util/ProjectUtils.java
@@ -94,7 +94,7 @@
         }
         else
         {
-            return OptionalPrompt.optionallyPromptWithCancel( SigilCore.getDefault().getPreferenceStore(),
+            return OptionalPrompt.optionallyPromptWithCancel(
                 SigilCore.PREFERENCES_REBUILD_PROJECTS, "Rebuild", "Do you wish to rebuild all Sigil projects", shell );
         }
     }
