diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c
index de64e499d62e5b4b2db99b048d49cd10273eb827..34ef8546bab3dbef6c76e0f3b72c07ff6601ef35 100644
--- a/libweston/compositor-x11.c
+++ b/libweston/compositor-x11.c
@@ -917,8 +917,9 @@ x11_output_enable(struct weston_output *base)
 			weston_log("Failed to create pixman renderer for output\n");
 			x11_output_deinit_shm(b, output);
 			goto err;
-		output->base.repaint = x11_output_repaint_shm;
 		}
+
+		output->base.repaint = x11_output_repaint_shm;
 	} else {
 		/* eglCreatePlatformWindowSurfaceEXT takes a Window*
 		 * but eglCreateWindowSurface takes a Window. */