         ;; back-substutition work
         (setq default-directory process-default-directory)
         (with-demoted-errors "Error in checkdoc: %S"
-          ;; Checkdoc needs the Emacs Lisp syntax table to parse sexps
-          ;; correctly, see https://github.com/flycheck/flycheck/issues/833
-          (with-syntax-table emacs-lisp-mode-syntax-table
-            (checkdoc-current-buffer t))
+          ;; Checkdoc needs the Emacs Lisp syntax table and comment syntax to
+          ;; parse sexps and identify docstrings correctly; see
+          ;; https://github.com/flycheck/flycheck/issues/833
+          (delay-mode-hooks (emacs-lisp-mode))
+          (setq delayed-mode-hooks nil)
+          (checkdoc-current-buffer t)
           (with-current-buffer checkdoc-diagnostic-buffer
             (princ (buffer-substring-no-properties (point-min) (point-max)))
             (kill-buffer)))))))

  "A Go syntax and type checker using the `go test' command.

See URL `http://golang.org/cmd/go'."
  ;; This command builds the test executable and leaves it in the current
  ;; directory.  Unfortunately 'go test -c' does not have the '-o' option.
  :command ("go" "test" "-c")
  :error-patterns
  ((error line-start (file-name) ":" line ": "
          (message (one-or-more not-newline)

    python-pylint
    python-pycompile
    r-lintr
    racket
    rpm-rpmlint
    rst-sphinx
    rst
