diff --git a/dwl.c b/dwl.c
index c6b8ab9..222cb62 100644
--- a/dwl.c
+++ b/dwl.c
@@ -1497,9 +1497,11 @@ rendermon(struct wl_listener *listener, void *data)
 	int skip = 0;
 	struct timespec now;
 
-	/* Render if no XDG clients have an outstanding resize. */
+	/* Render if no XDG clients have an outstanding resize and are visible on
+	 * this monitor.
+	 */
 	wl_list_for_each(c, &clients, link)
-		skip = skip || c->resize;
+		skip = skip || (c->resize && VISIBLEON(c, m));
 	if (!skip && !wlr_scene_output_commit(m->scene_output))
 		return;