       (define-key map [toggle-post] '(menu-item "Toggle Current Posting" ledger-toggle-current))
       (define-key map [toggle-xact] '(menu-item "Toggle Current Transaction" ledger-toggle-current-transaction))
       (define-key map [sep4] '(menu-item "--"))
-      (define-key map [recon-account] '(menu-item "Reconcile Account" ledger-reconcile))
-      (define-key map [check-balance] '(menu-item "Check Balance" ledger-display-balance-at-point))
+      (define-key map [recon-account] '(menu-item "Reconcile Account" ledger-reconcile :enable ledger-works))
+      (define-key map [check-balance] '(menu-item "Check Balance" ledger-display-balance-at-point :enable ledger-works))
       (define-key map [sep6] '(menu-item "--"))
       (define-key map [edit-amount] '(menu-item "Calc on Amount" ledger-post-edit-amount))
       (define-key map [sep] '(menu-item "--"))

(defvar ledger-month (ledger-current-month)
  "Start a ledger session with the current month, but make it customizable to ease retro-entry.")

(defun ledger-read-account-with-prompt (prompt) 
  (let* ((context (ledger-context-at-point))
	 (default (if (and (eq (ledger-context-line-type context) 'acct-transaction)
			   (eq (ledger-context-current-field context) 'account))

  (read-string (concat prompt
		       (if default
			   (concat " (" default "): ")
			   ": "))
	       nil 'ledger-minibuffer-history default))

(defun ledger-display-balance-at-point ()
