diff --git a/mode/groovy/groovy.js b/mode/groovy/groovy.js
index daa798722ea6dc2de1216de7f6a4f168f0999474..0df97dd0b7f4b6f1488a0bd0a919a82620df0d5c 100644
--- a/mode/groovy/groovy.js
+++ b/mode/groovy/groovy.js
@@ -21,9 +21,9 @@ CodeMirror.defineMode("groovy", function(config) {
     "abstract as assert boolean break byte case catch char class const continue def default " +
     "do double else enum extends final finally float for goto if implements import in " +
     "instanceof int interface long native new package private protected public return " +
-    "short static strictfp super switch synchronized threadsafe throw throws transient " +
+    "short static strictfp super switch synchronized threadsafe throw throws trait transient " +
     "try void volatile while");
-  var blockKeywords = words("catch class do else finally for if switch try while enum interface def");
+  var blockKeywords = words("catch class def do else enum finally for if interface switch trait try while");
   var standaloneKeywords = words("return break continue");
   var atoms = words("null true false this");