         (let ((indent (current-column)))
           ;; ?? (skip-chars-forward "\t (")
           (cond
+           ((looking-at "in\\b") (current-column))
            ;; Started val/fun/structure...
            ((looking-at sw:indent-starters-reg)
-            (+ (current-column) sw:indent-level))
+            (+ indent sw:indent-level))
            ;; Indent after "->" pattern, but only if its not an fn _ ->
            ;; (890726)
            ((and nil (looking-at ".*->")) ; duplication?

  (modify-syntax-entry ?\*      ". 67"  specware-mode-syntax-table)
  (modify-syntax-entry ?\"      "\"    " specware-mode-syntax-table)
  (modify-syntax-entry ?\\      "\\   " specware-mode-syntax-table)
  (modify-syntax-entry ?\#      "\\   " specware-mode-syntax-table)
  (modify-syntax-entry ?        " "     specware-mode-syntax-table)
  (modify-syntax-entry ?\t      " "     specware-mode-syntax-table)
  (modify-syntax-entry ?\%      "<   "  specware-mode-syntax-table)

         (t
          (let ((follows-comma (sw:previous-line-ends-in-comma))
		(indent (sw:get-indent)))
            (when (and (looking-at "|") (not (looking-at "||")))
              (setq indent (if (sw:find-matching-starter
                   "\\bcase\\b\\|\\bfn\\b\\|\\band\\b\\|\\bhandle\\b")
                  (cond
                   ((looking-at "case\\b") (- (current-column) sw:pipe-indent))
                   ((looking-at "fn\\b") (1+ (current-column)))
                   ((looking-at "and\\b") (1+ (1+ (current-column))))
                   ((looking-at "handle\\b") (+ (current-column) 5)))
                (+ indent sw:pipe-indent))))
            (if sw:paren-lookback       ; Look for open parenthesis ?
                (if follows-comma
                    (sw:get-paren-indent indent t)
                  (max 
                   indent ; (if (looking-at "[])}]") (1- indent) indent)
                   (sw:get-paren-indent indent nil)))
              indent))))))))

(defun sw:previous-line-ends-in-comma ()
  (save-excursion
