diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index eef0bd427..0c8dd2645 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -630,8 +630,15 @@ static void gui_gtk_window_clear(GdkWindow *win);
     static void
 gui_gtk3_redraw(int x, int y, int width, int height)
 {
+#ifdef GTK3_DEBUG
+    fprintf(stderr,  "%*s: (%4d, %4d, %4d, %4d) --> [%3d, %3d, %3d, %3d]\n",
+	    20, __func__,
+	    x, y, width, height,
+	    Y_2_ROW(y), X_2_COL(x), Y_2_ROW(y + height) - 1, X_2_COL(x + width) - 1);
+#endif
+    /* Range checks are left to gui_redraw_block() */
     gui_redraw_block(Y_2_ROW(y), X_2_COL(x),
-	    Y_2_ROW(y + height - 1), X_2_COL(x + width - 1),
+	    Y_2_ROW(y + height) - 1, X_2_COL(x + width) - 1,
 	    GUI_MON_NOCLEAR);
 }
 
@@ -688,8 +695,15 @@ draw_event(GtkWidget *widget UNUSED,
 	    {
 		const cairo_rectangle_t rect = list->rectangles[i];
 
-		gui_mch_clear_block(Y_2_ROW(rect.y), 1,
-			Y_2_ROW(rect.y + rect.height - 1), Columns);
+#ifdef GTK3_DEBUG
+		fprintf(stderr, "%*s: (%4d, %4d, %4d, %4d) --> [%3d, %3d, %3d, %3d] @%d /%d/%d/%d/%d/\n",
+			20, __func__,
+			(int)rect.x, (int)rect.y, (int)rect.width, (int)rect.height,
+			(int)Y_2_ROW(rect.y), 0, (int)Y_2_ROW(rect.y + rect.height) - 1, (int)Columns - 1, i,
+			gui.char_width, gui.char_height, gui.char_ascent, gui.border_width);
+#endif
+		gui_mch_clear_block(Y_2_ROW((int)rect.y), 0,
+			Y_2_ROW((int)(rect.y + rect.height)) - 1, Columns - 1);
 
 		if (blink_mode)
 		    gui_gtk3_redraw(rect.x, rect.y, rect.width, rect.height);
@@ -6723,6 +6737,11 @@ gui_mch_clear_block(int row1, int col1, int row2, int col2)
     color.pixel = gui.back_pixel;
 #endif
 
+    col1 = check_col(col1);
+    col2 = check_col(col2);
+    row1 = check_row(row1);
+    row2 = check_row(row2);
+
 #if GTK_CHECK_VERSION(3,0,0)
     {
 	/* Add one pixel to the far right column in case a double-stroked
@@ -6732,6 +6751,12 @@ gui_mch_clear_block(int row1, int col1, int row2, int col2)
 	    (col2 - col1 + 1) * gui.char_width + (col2 == Columns - 1),
 	    (row2 - row1 + 1) * gui.char_height
 	};
+#ifdef GTK3_DEBUG
+	fprintf(stderr,  "%*s: (%4d, %4d, %4d, %4d) <-- [%3d, %3d, %3d, %3d]\n",
+		 20, __func__,
+		rect.x, rect.y, rect.width, rect.height,
+		row1, col1, row2, col2);
+#endif
 	GdkWindow * const win = gtk_widget_get_window(gui.drawarea);
 	cairo_t * const cr = cairo_create(gui.surface);
 # if GTK_CHECK_VERSION(3,22,2)
