diff --git a/Misc/python-mode.el b/Misc/python-mode.el
index c84ede4..d5fb956 100644
--- a/Misc/python-mode.el
+++ b/Misc/python-mode.el
@@ -471,31 +471,39 @@
 (defun py-electric-colon (arg)
   "Insert a colon.
 In certain cases the line is outdented appropriately.  If a numeric
-argument is provided, that many colons are inserted non-electrically."
+argument is provided, that many colons are inserted non-electrically.
+Electric behavior is inhibited inside a string or comment."
   (interactive "P")
   (self-insert-command (prefix-numeric-value arg))
-  (save-excursion
-    (let ((here (point))
-	  (outdent 0)
-	  (indent (py-compute-indentation)))
-      (if (and (not arg)
-	       (py-outdent-p)
-	       (= indent (save-excursion
-			   (forward-line -1)
-			   (py-compute-indentation)))
-	       )
-	  (setq outdent py-indent-offset))
-      ;; Don't indent, only outdent.  This assumes that any lines that
-      ;; are already outdented relative to py-compute-indentation were
-      ;; put there on purpose.  Its highly annoying to have `:' indent
-      ;; for you.  Use TAB, C-c C-l or C-c C-r to adjust.  TBD: Is
-      ;; there a better way to determine this???
-      (if (< (current-indentation) indent) nil
-	(goto-char here)
-	(beginning-of-line)
-	(delete-horizontal-space)
-	(indent-to (- indent outdent))
-	))))
+  ;; are we in a string or comment?
+  (if (save-excursion
+	(let ((pps (parse-partial-sexp (save-excursion
+					 (beginning-of-python-def-or-class)
+					 (point))
+				       (point))))
+	  (not (or (nth 3 pps) (nth 4 pps)))))
+      (save-excursion
+	(let ((here (point))
+	      (outdent 0)
+	      (indent (py-compute-indentation)))
+	  (if (and (not arg)
+		   (py-outdent-p)
+		   (= indent (save-excursion
+			       (forward-line -1)
+			       (py-compute-indentation)))
+		   )
+	      (setq outdent py-indent-offset))
+	  ;; Don't indent, only outdent.  This assumes that any lines that
+	  ;; are already outdented relative to py-compute-indentation were
+	  ;; put there on purpose.  Its highly annoying to have `:' indent
+	  ;; for you.  Use TAB, C-c C-l or C-c C-r to adjust.  TBD: Is
+	  ;; there a better way to determine this???
+	  (if (< (current-indentation) indent) nil
+	    (goto-char here)
+	    (beginning-of-line)
+	    (delete-horizontal-space)
+	    (indent-to (- indent outdent))
+	    )))))
 
 (defun py-indent-right (arg)
   "Indent the line by one `py-indent-offset' level.
