   (cond ((paredit-in-string-p)
          (newline))
         ((paredit-in-comment-p)
-         (if (paredit-handle-sexp-errors
-                 ;; Check for anything that would break structure in
-                 ;; the comment.
-                 (save-restriction
-                   (narrow-to-region (point) (point-at-eol))
-                   (save-excursion
-                     (while (< (point) (point-max))
-                       (forward-sexp)))
-                   t)
-               nil)
+         (if (paredit-region-ok-p (point) (point-at-eol))
              (progn (newline-and-indent) (indent-sexp))
              (indent-new-comment-line)))
         (t

  ;;    else an integer (the current comment nesting)
  (and (nth 4 (or state (paredit-current-parse-state)))
       t))

(defun paredit-point-at-sexp-boundary (n)
  (cond ((< n 0) (paredit-point-at-sexp-start))

          (paredit-in-comment-p)
          (paredit-in-char-p))
      (error "Invalid context for command `%s'." command)))

(defun paredit-check-region (start end)
  (save-restriction
    (narrow-to-region start end)
    (if (fboundp 'check-parens)
        (check-parens)
        (save-excursion
          (goto-char (point-min))
          (while (not (eobp))
            (forward-sexp))))))

(defun paredit-region-ok-p (start end)
  (paredit-handle-sexp-errors
      (progn
        (save-restriction
          (narrow-to-region start end)
          ;; Can't use `check-parens' here -- it signals the wrong kind
          ;; of errors.
          (save-excursion
            (goto-char (point-min))
            (while (not (eobp))
              (forward-sexp))))
        t)
    nil))

;;;; Initialization
