diff --git a/subprojects/gradle-core/src/main/groovy/org/gradle/api/tasks/ide/eclipse/ProjectType.java b/subprojects/gradle-core/src/main/groovy/org/gradle/api/tasks/ide/eclipse/ProjectType.java
index 5936a05..d7abb5e 100644
--- a/subprojects/gradle-core/src/main/groovy/org/gradle/api/tasks/ide/eclipse/ProjectType.java
+++ b/subprojects/gradle-core/src/main/groovy/org/gradle/api/tasks/ide/eclipse/ProjectType.java
@@ -29,6 +29,13 @@ public enum ProjectType {
         public List<String> natureNames() {
             return WrapUtil.toList("org.eclipse.jdt.core.javanature");
         }},
+    SCALA {
+        public List<String> buildCommandNames() {
+            return WrapUtil.toList("ch.epfl.lamp.sdt.core.scalabuilder");
+        }
+        public List<String> natureNames() {
+            return WrapUtil.toList("org.eclipse.jdt.core.javanature", "ch.epfl.lamp.sdt.core.scalanature");
+        }},
     SIMPLE {
         public List<String> buildCommandNames() {
             return new ArrayList<String>();
diff --git a/subprojects/gradle-plugins/src/main/groovy/org/gradle/api/plugins/EclipsePlugin.java b/subprojects/gradle-plugins/src/main/groovy/org/gradle/api/plugins/EclipsePlugin.java
index 6c09250..cb195e0 100644
--- a/subprojects/gradle-plugins/src/main/groovy/org/gradle/api/plugins/EclipsePlugin.java
+++ b/subprojects/gradle-plugins/src/main/groovy/org/gradle/api/plugins/EclipsePlugin.java
@@ -25,6 +25,7 @@ import org.gradle.api.artifacts.ProjectDependency;
 import org.gradle.api.artifacts.specs.DependencySpecs;
 import org.gradle.api.artifacts.specs.Type;
 import org.gradle.api.internal.IConventionAware;
+import org.gradle.api.plugins.scala.ScalaPlugin;
 import org.gradle.api.specs.Spec;
 import org.gradle.api.specs.Specs;
 import org.gradle.api.tasks.ConventionValue;
@@ -80,7 +81,11 @@ public class EclipsePlugin implements Plugin {
     private EclipseProject configureEclipseProject(Project project) {
         EclipseProject eclipseProject = project.getTasks().add(ECLIPSE_PROJECT_TASK_NAME, EclipseProject.class);
         eclipseProject.setProjectName(project.getName());
-        eclipseProject.setProjectType(ProjectType.JAVA);
+        if (project.getPlugins().hasPlugin(ScalaPlugin.class)) {
+            eclipseProject.setProjectType(ProjectType.SCALA);
+        } else {
+            eclipseProject.setProjectType(ProjectType.JAVA);
+        }
         eclipseProject.setDescription("Generates an Eclipse .project file.");
         return eclipseProject;
     }
@@ -219,4 +224,4 @@ public class EclipsePlugin implements Plugin {
     private WarPluginConvention war(Convention convention) {
         return convention.getPlugin(WarPluginConvention.class);
     }
-}
\ No newline at end of file
+}
