 		   (ledger-run-ledger buf "--uncleared" "emacs" account)))
 	      (when (= 0 exit-code)
 		(goto-char (point-min))
-		(unless (looking-at "(")
-		  (error (buffer-string)))
-		(read (current-buffer)))))))
+		(unless (eobp)
+		  (unless (looking-at "(")
+		    (error (buffer-string)))
+		  (read (current-buffer))))))))
     (dolist (item items)
       (dolist (xact (nthcdr 6 item))
 	(let ((beg (point))

  (set-buffer-modified-p nil)
  (ledger-display-balance))

(defun ledger-reconcile-finish ()
  (interactive)
  (save-excursion

	 (ledger-buf (current-buffer))
	 exit-code)
    (if (string-match "\\([0-9]+\\)/\\([0-9]+\\)/\\([0-9]+\\)" date)
	(setq date
	      (encode-time 0 0 0 (string-to-number (match-string 3 date))
			   (string-to-number (match-string 2 date))
			   (string-to-number (match-string 1 date)))))
    (ledger-find-slot date)
    (save-excursion
      (if (re-search-backward "^Y " nil t)
