diff --git a/mode/clojure/clojure.js b/mode/clojure/clojure.js
index 93e9bd24cdca9ceab71a62e7a1151fffaf96fc60..d0268a78d61093689d1c73a8401dfa2f45827e49 100644
--- a/mode/clojure/clojure.js
+++ b/mode/clojure/clojure.js
@@ -157,7 +157,8 @@ CodeMirror.defineMode("clojure", function (config, mode) {
                             keyWord += letter;
                         }
 
-                        if (keyWord.length > 0 && indentKeys.propertyIsEnumerable(keyWord)) { // indent-word
+                        if (keyWord.length > 0 && (indentKeys.propertyIsEnumerable(keyWord) ||
+                                                   /^(?:def|with)/.test(keyWord))) { // indent-word
                             pushStack(state, indentTemp + INDENT_WORD_SKIP, ch);
                         } else { // non-indent word
                             // we continue eating the spaces