   (interactive)
   (let (col)
     ;; round up, with overflow
-    (setq col (* (/ (+ (current-column) slate-indent-amount)
-		    slate-indent-amount)
-		 slate-indent-amount))
+    (setq col (* (/ (+ (current-column) slate-indent-increment)
+		    slate-indent-increment)
+		 slate-indent-increment))
     (indent-to-column col)))
 
 ;; Higher-level utilities calling `slate-mode' functions.

	(cond ((equal (nth 3 state) ?\") ;in a comment
	       (save-excursion
		 (slate-backward-comment)
		 (setq indent-amount (+ (current-column) slate-indent-amount))))
	      ((equal (nth 3 state) ?')	;in a string
	       (setq indent-amount 0))
	      ((equal (nth 3 state) ?\))
	       (setq indent-amount (+ (current-column) slate-indent-amount))))
	(when indent-amount
	  (return-from slate-calculate-indent indent-amount))
	(slate-narrow-to-method)

	       (slate-find-statement-begin)
	       (setq indent-amount (slate-current-column)))
	      ((equal (preceding-char) ?\()
	       (setq indent-amount slate-indent-increment))
	      ((memq (preceding-char) '(?| ?\[))
	       (skip-chars-backward "^[")
	       (setq indent-amount (+ (slate-current-column)
				      slate-indent-increment)))
	      ((equal (preceding-char) ?:)
	       (beginning-of-line)
	       (slate-forward-whitespace)
	       (setq indent-amount (+ (slate-current-column)
				      slate-indent-increment)))
	      (t			;must be a statement continuation
	       (slate-find-statement-begin)
	       (setq indent-amount (+ (slate-current-column)
				      slate-indent-increment))))))
    (save-excursion
      (save-restriction
        (widen)
        (beginning-of-line)
        (slate-forward-whitespace)
        (when (memq (following-char) '(?\} ?\) ?\]))
          (setq indent-amount (max 0 (- indent-amount slate-indent-increment))))
        (while (memq (following-char) '(?\} ?\) ?\]))
          (setq indent-amount (max 0 (- indent-amount slate-indent-increment)))
          (forward-char))))
    indent-amount))

(defun slate-indent-line ()
  "Sees if the current line is a new statement, in which case indent the same
as the previous statement, or determine by context. If not the start of a new
statement, the start of the previous line is used, except if that starts a
new line, in which case it indents by `slate-indent-increment'."
  (let (indent-amount is-keyword)
    (save-excursion
      (beginning-of-line)
