   itself will be merged into the failure map."
   ([expr] `(expect nil ~expr))
   ([docstring expr]
-     {:pre [(or (string? docstring) (nil? docstring))]}
      (if (function-call? expr)
        ;; Normal function call
-       `(let [f# ~(first expr)
+       `(let [doc# ~docstring
+	      f# ~(first expr)
 	      args# (list ~@(rest expr))
 	      result# (apply f# args#)]
 	  (or result#

			      :result result#
			      :file ~*file*
			      :ns '~(ns-name *ns*)}
			     ~(when docstring {:doc docstring}))))))
       ;; Unknown type of expression
       `(let [result# ~expr]
	  (or result#
	      (throw (ExpectationFailed.
		      (merge '~(meta &form)

			      :result result#
			      :file ~*file*
			      :ns '~(ns-name *ns*)}
			     (when doc# {:doc doc#})))))))))
