diff --git a/src/compositor-android.c b/src/compositor-android.c
index 2c75e8f..5e27071 100644
--- a/src/compositor-android.c
+++ b/src/compositor-android.c
@@ -92,10 +92,14 @@
 {
 	struct android_output *output = to_android_output(base);
         struct android_compositor *compositor = output->compositor;
+	struct weston_plane *primary_plane = &compositor->base.primary_plane;
 	struct wl_event_loop *loop;
 
 	compositor->base.renderer->repaint_output(&output->base, damage);
 
+	pixman_region32_subtract(&primary_plane->damage,
+				 &primary_plane->damage, damage);
+
 	/* FIXME: does Android have a way to signal page flip done? */
 	loop = wl_display_get_event_loop(compositor->base.wl_display);
 	wl_event_loop_add_idle(loop, android_finish_frame, output);
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 1ecd93c..417b67f 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -357,6 +357,9 @@
 
 	c->base.renderer->repaint_output(&output->base, damage);
 
+	pixman_region32_subtract(&c->base.primary_plane.damage,
+				 &c->base.primary_plane.damage, damage);
+
 	bo = gbm_surface_lock_front_buffer(output->surface);
 	if (!bo) {
 		weston_log("failed to lock front buffer: %m\n");
diff --git a/src/compositor-headless.c b/src/compositor-headless.c
index 55206b3..d23ee0a 100644
--- a/src/compositor-headless.c
+++ b/src/compositor-headless.c
@@ -66,6 +66,9 @@
 
 	ec->renderer->repaint_output(&output->base, damage);
 
+	pixman_region32_subtract(&ec->primary_plane.damage,
+				 &ec->primary_plane.damage, damage);
+
 	wl_event_source_timer_update(output->finish_frame_timer, 16);
 
 	return;
diff --git a/src/compositor-rpi.c b/src/compositor-rpi.c
index 339032a..c75bcda 100644
--- a/src/compositor-rpi.c
+++ b/src/compositor-rpi.c
@@ -914,6 +914,7 @@
 {
 	struct rpi_output *output = to_rpi_output(base);
 	struct rpi_compositor *compositor = output->compositor;
+	struct weston_plane *primary_plane = &compositor->base.primary_plane;
 	struct rpi_element *element;
 	DISPMANX_UPDATE_HANDLE_T update;
 	int layer = 10000;
@@ -942,6 +943,9 @@
 	 */
 	compositor->base.renderer->repaint_output(&output->base, damage);
 
+	pixman_region32_subtract(&primary_plane->damage,
+				 &primary_plane->damage, damage);
+
 	/* Move the list of elements into the old_element_list. */
 	wl_list_insert_list(&output->old_element_list, &output->element_list);
 	wl_list_init(&output->element_list);
diff --git a/src/compositor-wayland.c b/src/compositor-wayland.c
index 5376a20..24dccd1 100644
--- a/src/compositor-wayland.c
+++ b/src/compositor-wayland.c
@@ -137,6 +137,10 @@
 	wl_callback_add_listener(callback, &frame_listener, output);
 
 	ec->renderer->repaint_output(&output->base, damage);
+
+	pixman_region32_subtract(&ec->primary_plane.damage,
+				 &ec->primary_plane.damage, damage);
+
 }
 
 static void
diff --git a/src/compositor-x11.c b/src/compositor-x11.c
index ba18297..b26da09 100644
--- a/src/compositor-x11.c
+++ b/src/compositor-x11.c
@@ -314,6 +314,9 @@
 
 	ec->renderer->repaint_output(output_base, damage);
 
+	pixman_region32_subtract(&ec->primary_plane.damage,
+				 &ec->primary_plane.damage, damage);
+
 	wl_event_source_timer_update(output->finish_frame_timer, 10);
 }
 
diff --git a/src/compositor.c b/src/compositor.c
index 2ca48b8..6eb0b8c 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -985,8 +985,6 @@
 	pixman_region32_init(&output_damage);
 	pixman_region32_intersect(&output_damage,
 				  &ec->primary_plane.damage, &output->region);
-	pixman_region32_subtract(&ec->primary_plane.damage,
-				 &ec->primary_plane.damage, &output->region);
 
 	if (output->dirty)
 		weston_output_update_matrix(output);
