diff --git a/ChangeLog b/ChangeLog
index 58c0018e08adc871498d908eab78e385ecbbd83c..3d1af7d27f8932faa5ba217232c9ce541e0741c1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,9 @@
 2015-06-14  Benno Schulenberg  <bensberg@justemail.net>
 	* src/winio.c (edit_draw): Add some debugging code to track which
 	multidata codes (for multiline regexes) get assigned to which lines.
+	* src/winio.c (edit_draw): Start and end regexes can be very similar;
+	so if a found start has been qualified as an end earlier, believe it
+	and skip to the next step.  This helps with Python's docstrings.
 
 2015-06-11  Benno Schulenberg  <bensberg@justemail.net>
 	* src/winio.c (get_key_buffer): Add some debugging code to make it
diff --git a/src/winio.c b/src/winio.c
index 053b226b56c1aed376f76bff8d4b42a13d03ab07..286b750414a830b5e98d3eb361244490d8c9a3f1 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2600,6 +2600,12 @@ void edit_draw(filestruct *fileptr, const char *converted, int
 		    start_line = start_line->prev;
 		}
 
+		/* If the found start has been qualified as an end earlier,
+		 * believe it and skip to the next step. */
+		if (start_line != NULL &&
+			start_line->multidata[tmpcolor->id] == CBEGINBEFORE)
+		    goto step_two;
+
 		/* Skip over a zero-length regex match. */
 		if (startmatch.rm_so == startmatch.rm_eo)
 		    startmatch.rm_eo++;