           (next-line-column
            (if (and (equal last-command this-command) (/= (current-indentation) 0))
                (* (/ (- (current-indentation) 1) haml-indent-offset) haml-indent-offset)
-             (haml-compute-indentation))))
+             (car (haml-compute-indentation)))))
       (while (< (point) end)
         (setq this-line-column next-line-column
               current-column (current-indentation))

0, it will cycle back to the maximum sensible indentation."
  (interactive "*")
  (let ((ci (current-indentation))
        (cc (current-column))
        (need (haml-compute-indentation)))
    (save-excursion
      (beginning-of-line)
      (delete-horizontal-space)
      (if (and (equal last-command this-command) (/= ci 0))
          (indent-to (* (/ (- ci 1) haml-indent-offset) haml-indent-offset))
        (indent-to need)))
    (if (< (current-column) (current-indentation))
        (forward-to-indentation 0))))

(defun haml-reindent-region-by (n)
  "Add N spaces to the beginning of each line in the region.

          (haml-limited-forward-sexp eol)

          ;; Check for multiline
          (while (and (eolp) (eq (char-before) ?,) (not (eobp)))
            (forward-line)
            (let ((eol (save-excursion (end-of-line) (point))))
              ;; If no sexps are closed,
