 	    ("\C-c\C-p"  . py-previous-statement)
 	    ("\C-c\C-u"  . py-goto-block-up)
 	    ("\C-c\C-m"  . py-mark-block)
-	    ("\C-c#"	 . py-comment-region)
+	    ("\C-c#"	 . comment-region)
 	    ("\C-c?"	 . py-describe-mode)
 	    ("\C-c\C-hm" . py-describe-mode)
 	    ("\e\C-a"	 . beginning-of-python-def-or-class)

		  ;; no comment, so go back
		  (goto-char start))))))))

(defun py-comment-region (start end &optional uncomment-p)
  "Comment out region of code; with prefix arg, uncomment region.
The lines from the line containing the start of the current region up
to (but not including) the line containing the end of the region are
commented out, by inserting the string `py-block-comment-prefix' at
the start of each line.  With a prefix arg, removes
`py-block-comment-prefix' from the start of each line instead."
  (interactive "*r\nP")   ; region; raw prefix arg
  (goto-char end)   (beginning-of-line) (setq end (point))
  (goto-char start) (beginning-of-line) (setq start (point))
  (let ((prefix-len (length py-block-comment-prefix)) )
    (save-excursion
      (save-restriction
	(narrow-to-region start end)
	(while (not (eobp))
	  (if uncomment-p
	      (and (string= py-block-comment-prefix
			    (buffer-substring
			     (point) (+ (point) prefix-len)))
		   (delete-char prefix-len))
	    (insert py-block-comment-prefix))
	  (forward-line 1))))))


;; Documentation functions

lines are aligned to column zero.")

(defvar py-block-comment-prefix "##"
  "*String used by \\[comment-region] to comment out a block of code.
This should follow the convention for non-indenting comment lines so
that the indentation commands won't get confused (i.e., the string
should be of the form `#x...' where `x' is not a blank or a tab, and
