   "*Jump to innermost exception frame in *Python Output* buffer.
 When this variable is non-nil and ane exception occurs when running
 Python code synchronously in a subprocess, jump immediately to the
-source code of the innermost frame.")
+source code of the innermost frame."
+  :type 'boolean
+  :group 'python)
+
+(defcustom py-ask-about-save t
+  "If not nil, ask about which buffers to save before executing some code.
+Otherwise, all modified buffers are saved without asking."
+  :type 'boolean
+  :group 'python)
 
 (defcustom py-backspace-function 'backward-delete-char-untabify
   "*Function called by `py-electric-backspace' when deleting backwards."

do execfile instead.  If the current buffer is not visiting a file, do
`py-execute-buffer' instead.  If the file local variable
`py-master-file' is non-nil, import or reload the named file instead
of the buffer's file.  The file is saved if necessary.

See the `\\[py-execute-region]' docs for an account of some subtleties.


  (let ((file (buffer-file-name (current-buffer))))
    (if file
        (progn
	  ;; Maybe save some buffers
	  (save-some-buffers (not py-ask-about-save) nil)
          (py-execute-string
           (if (string-match "\\.py$" file)
               (let ((f (file-name-sans-extension
