         (while (and
                 (zerop (forward-line 1))
                 (or
-                 (go-in-comment-p)
                  (looking-at go--comment-start-regexp)
-                 (looking-at "^[[:space:]]*$"))))
+                 (looking-at "^[[:space:]]*$")
+                 (go-in-comment-p))))
 
         (setq case-after (looking-at go--case-or-default-regexp)))
 

        (while (and
                (zerop (forward-line -1))
                (cond
                 ((go-in-comment-p))

                 ((looking-at "^[[:space:]]*$"))

                 ((looking-at go--comment-start-regexp)
                  (when (= (current-indentation) (- indent tab-width))
                    (setq has-case-aligned-preceding-comment t))
                  t))))

        ;; Record if a switch (or select) precedes us.
        (setq switch-before (looking-at "^[[:space:]]*\\(switch\\|select\\)[[:space:]]")))

  "Return non-nil if looking at a comment attached to a case statement.

INDENT is the normal indent of this line, i.e. that of the case body."
  (when (and
         (> (current-indentation) 0)
         (looking-at go--comment-start-regexp))

    (let (switch-before
          case-after
          has-case-aligned-preceding-comment)
