   "Calculate the maximum sensible indentation for the current line."
   (save-excursion
     (beginning-of-line)
-    (if (bobp) 0
+    (if (bobp) (list 0 nil)
       (haml-forward-through-whitespace t)
       (let ((indent (funcall haml-indent-function)))
         (cond
-         ((integerp indent) indent)
-         (indent (+ (current-indentation) haml-indent-offset))
-         (t (current-indentation)))))))
+         ((consp indent) indent)
+         ((integerp indent) (list indent t))
+         (indent (list (+ (current-indentation) haml-indent-offset) nil))
+         (t (list (current-indentation) nil)))))))
 
 (defun haml-indent-region (start end)
   "Indent each nonblank line in the region.

          (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))))
      (while (< (point) end)
        (setq this-line-column next-line-column
              current-column (current-indentation))

      (return-from haml-indent-p
        (if (eq (char-before) ?,) (cdr (assq 'hash-indent attr-props))
          (beginning-of-line)
          (list (+ (cdr (assq 'indent attr-props)) haml-indent-offset) nil)))))
  (loop for opener in haml-block-openers
        if (looking-at opener) return t
        finally return nil))
