Two patches for Emacs 20.2 compatibility:

(py-compute-indentation): int-to-char isn't defined in Emacs, but we
don't really need it anyway, so just remove this conversion.  XEmacs
is happy either way.

(py-parse-state): The Emacs branch (i.e. w/o buffer-syntactic-context)
wasn't adjusting point correctly.
diff --git a/Misc/python-mode.el b/Misc/python-mode.el
index 211fd3c..6fadfa1 100644
--- a/Misc/python-mode.el
+++ b/Misc/python-mode.el
@@ -8,7 +8,7 @@
 ;; Created:    Feb 1992
 ;; Keywords:   python languages oop
 
-(defconst py-version "$Revision$"
+(defconst py-version "3.51"
   "`python-mode' version number.")
 
 ;; This software is provided as-is, without express or implied
@@ -1633,8 +1633,7 @@
 	;; if we landed inside a string, go to the beginning of that
 	;; string. this handles triple quoted, multi-line spanning
 	;; strings.
-	(let* ((pps3 (nth 3 (parse-partial-sexp bod (point))))
-	       (delim (and pps3 (int-to-char pps3)))
+	(let* ((delim (nth 3 (parse-partial-sexp bod (point))))
 	       (skip (and delim (make-string 1 delim))))
 	  (when skip
 	    (save-excursion
@@ -2551,8 +2550,8 @@
 	;; no accurate way to determine this otherwise.
 	(if (not (fboundp 'buffer-syntactic-context))
 	    ;; Emacs
-	    (save-excursion
-	      (setq pps (parse-partial-sexp (point) here))
+	    (progn
+	      (save-excursion (setq pps (parse-partial-sexp (point) here)))
 	      ;; make sure we don't land inside a triple-quoted string
 	      (setq done (or (not (nth 3 pps))
 			     (bobp))))