### Eclipse Workspace Patch 1.0
#P org.codehaus.groovy.eclipse.ui
Index: src/org/codehaus/groovy/eclipse/launchers/AbstractGroovyLaunchShortcut.java
===================================================================
--- src/org/codehaus/groovy/eclipse/launchers/AbstractGroovyLaunchShortcut.java	(revision 20423)
+++ src/org/codehaus/groovy/eclipse/launchers/AbstractGroovyLaunchShortcut.java	(working copy)
@@ -59,6 +59,7 @@
 import org.eclipse.jdt.core.JavaModelException;
 import org.eclipse.jdt.launching.IJavaLaunchConfigurationConstants;
 import org.eclipse.jdt.launching.JavaRuntime;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorInput;
@@ -63,6 +64,7 @@
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.PlatformUI;
 import org.osgi.framework.Bundle;
 
 /**
@@ -107,10 +109,24 @@
      */
     public void launch(ISelection selection, String mode) {
         ICompilationUnit unit = extractCompilationUnit(selection);
-        IJavaProject javaProject = extractJavaProject(selection);
+        IJavaProject javaProject;
+        if (unit != null) {
+            javaProject = unit.getJavaProject();
+        } else {
+            javaProject = extractJavaProject(selection);
+        }
+        if (javaProject==null && unit==null) {
+            MessageDialog.openError(PlatformUI.getWorkbench().
+                getActiveWorkbenchWindow().getShell(), "Can't run script", "No script or project selected!");
+            return;
+        }
         if (unit != null || canLaunchWithNoType()) {
             launchGroovy(unit, javaProject, mode);
     	}
+        else {
+            MessageDialog.openError(PlatformUI.getWorkbench().
+                    getActiveWorkbenchWindow().getShell(), "Can't run script", "No script selected!");
+        }
     }
 
     /**
