                      (goto-char pt)
                      (back-to-indentation)
                      (if (looking-at "\\<else\\>")
-                         (* default-tab-width (+ 1 level))
+                         (* rust-indent-offset (+ 1 level))
                        (progn
                          (goto-char pt)
                          (beginning-of-line)
                          (rust-rewind-irrelevant)
                          (end-of-line)
                          (if (looking-back "[{};,]")
-                             (* default-tab-width level)
+                             (* rust-indent-offset level)
                            (back-to-indentation)
                            (if (looking-at "#")
-                               (* default-tab-width level)
-                             (* default-tab-width (+ 1 level))))))))))
+                               (* rust-indent-offset level)
+                             (* rust-indent-offset (+ 1 level))))))))))
 
               ;; Otherwise we're in a column-zero definition
               (t 0))))))

    (modify-syntax-entry ?\^m "> b"   table)

    table))

(defun rust-paren-level () (nth 0 (syntax-ppss)))
(defun rust-in-str-or-cmnt () (nth 8 (syntax-ppss)))

           (let ((level (rust-paren-level)))
             (cond
              ;; A function return type is 1 level indented
              ((looking-at "->") (* rust-indent-offset (+ level 1)))

              ;; A closing brace is 1 level unindended
              ((looking-at "}") (* rust-indent-offset (- level 1)))

              ;; If we're in any other token-tree / sexp, then:
              ;;  - [ or ( means line up with the opening token
