diff --git a/init.el b/init.el
index 202f741..ec8b7d0 100644
--- a/init.el
+++ b/init.el
@@ -76,6 +76,7 @@ by Prelude.")
 (require 'prelude-common-lisp)
 (require 'prelude-emacs-lisp)
 (require 'prelude-erc)
+(require 'prelude-groovy)
 (require 'prelude-haskell)
 (require 'prelude-js)
 (require 'prelude-latex)
diff --git a/modules/prelude-groovy.el b/modules/prelude-groovy.el
new file mode 100644
index 0000000..ad3305c
--- /dev/null
+++ b/modules/prelude-groovy.el
@@ -0,0 +1,6 @@
+;;; use groovy-mode when file ends in .groovy or has #!/bin/groovy at start
+(autoload 'groovy-mode "groovy-mode" "Major mode for editing Groovy code." t)
+(add-to-list 'auto-mode-alist '("\.groovy$" . groovy-mode))
+(add-to-list 'interpreter-mode-alist '("groovy" . groovy-mode))
+
+(provide 'prelude-groovy)
diff --git a/modules/prelude-packages.el b/modules/prelude-packages.el
index f730efa..f3c7210 100644
--- a/modules/prelude-packages.el
+++ b/modules/prelude-packages.el
@@ -44,7 +44,7 @@
 (message "%s" " done.")
 
 (defvar prelude-packages
-  '(auctex clojure-mode coffee-mode deft gist haml-mode
+  '(auctex clojure-mode coffee-mode deft gist groovy-mode haml-mode
            haskell-mode inf-ruby markdown-mode paredit projectile
            python sass-mode scss-mode solarized-theme yaml-mode yari zenburn-theme)
   "A list of packages to ensure are installed at launch.")