     (setq pos (point))
     (beginning-of-line)
     (if (or (looking-at "^[[:word:]]+:") (looking-at "^[[:space:]]*\\(case .+\\|default\\):"))
-        (progn (forward-line -1)
-               (end-of-line))
+        (end-of-line 0)
       (goto-char pos))
     (if (/= start-pos (point))
         (go--backward-irrelevant stop-at-string))

  (interactive "P")
  (save-excursion
    (let ((cur-buffer (current-buffer)) flymake-state lines)
      (if (boundp 'flymake-mode)
          (progn
            (setq flymake-state flymake-mode)
            (flymake-mode-off)))
      (save-some-buffers nil (lambda () (equal cur-buffer (current-buffer))))
      (if (buffer-modified-p)
          (message "Cannot operate on unsaved buffer")

        (goto-char point)
      (setq indent (go-indentation-at-point))
      (if (looking-at "[[:word:]]+:\\([[:space:]]*/.+\\)?$\\|case .+:\\|default:")
          (decf indent tab-width))
      (setq shift-amt (- indent (current-column)))
      (if (zerop shift-amt)
          nil
