 	(forward-word 1)
 	(backward-word 1))
       (current-column))))
+
+(defun rust-align-to-method-chain ()
+  (save-excursion
+	(previous-line)
+	(end-of-line)
+	(backward-word 1)
+	(backward-char)
+	(when (looking-at "\\..+\(.*\)\n")
+	  (- (current-column) rust-indent-offset))))
 
 (defun rust-rewind-to-beginning-of-current-level-expr ()
   (let ((current-level (rust-paren-level)))

                   ;; the inside of it correctly relative to the outside.
                   (if (= 0 level)
                       0
                     (save-excursion
                       (backward-up-list)
                       (rust-rewind-to-beginning-of-current-level-expr)
                       (+ (current-column) rust-indent-offset)))))
             (cond
              ;; A function return type is indented to the corresponding function arguments
              ((looking-at "->")

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

			  ;;Line up method chains by their .'s
			  ((when (and rust-indent-method-chain
						  (looking-at "\..+\(.*\);?\n"))
				 (or
				  (let ((method-indent (rust-align-to-method-chain)))
					(when method-indent
					  (+ method-indent rust-indent-offset)))
				  (+ baseline rust-indent-offset))))

			  
              ;; Doc comments in /** style with leading * indent to line up the *s
              ((and (nth 4 (syntax-ppss)) (looking-at "*"))
               (+ 1 baseline))
