diff --git a/grails-core/src/main/groovy/org/grails/compiler/injection/GrailsAwareTraitInjectionOperation.java b/grails-core/src/main/groovy/org/grails/compiler/injection/GrailsAwareTraitInjectionOperation.java
index <HASH>..<HASH> 100644
--- a/grails-core/src/main/groovy/org/grails/compiler/injection/GrailsAwareTraitInjectionOperation.java
+++ b/grails-core/src/main/groovy/org/grails/compiler/injection/GrailsAwareTraitInjectionOperation.java
@@ -92,7 +92,7 @@ public class GrailsAwareTraitInjectionOperation extends
             boolean implementsTrait = false;
             boolean traitNotLoaded = false;
             try {
-                implementsTrait = classNode.implementsInterface(traitClassNode);
+                implementsTrait = classNode.declaresInterface(traitClassNode);
             } catch (Throwable e) {
                 // if we reach this point, the trait injector could not be loaded due to missing dependencies (for example missing servlet-api). This is ok, as we want to be able to compile against non-servlet environments.
                 traitNotLoaded = true;
Use declaresInterface instead of implementsInterface

This allows subclasses to implement the same trait as their super classes which allows them to get their own copies of static methods.  grails-data-mapping needs this.