diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index 6aca10c..dc90781 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -4025,6 +4025,8 @@
 	b->use_pixman = config->use_pixman;
 	b->pageflip_timeout = config->pageflip_timeout;
 
+	compositor->backend = &b->base;
+
 	if (parse_gbm_format(config->gbm_format, GBM_FORMAT_XRGB8888, &b->gbm_format) < 0)
 		goto err_compositor;
 
@@ -4141,8 +4143,6 @@
 				   "support failed.\n");
 	}
 
-	compositor->backend = &b->base;
-
 	ret = weston_plugin_api_register(compositor, WESTON_DRM_OUTPUT_API_NAME,
 					 &api, sizeof(api));
 
diff --git a/libweston/compositor-fbdev.c b/libweston/compositor-fbdev.c
index 1765fa8..992eadb 100644
--- a/libweston/compositor-fbdev.c
+++ b/libweston/compositor-fbdev.c
@@ -731,6 +731,7 @@
 		return NULL;
 
 	backend->compositor = compositor;
+	compositor->backend = &backend->base;
 	if (weston_compositor_set_presentation_clock_software(
 							compositor) < 0)
 		goto out_compositor;
@@ -769,7 +770,6 @@
 	udev_input_init(&backend->input, compositor, backend->udev,
 			seat_id, param->configure_device);
 
-	compositor->backend = &backend->base;
 	return backend;
 
 out_launcher:
diff --git a/libweston/compositor-headless.c b/libweston/compositor-headless.c
index 64fe6f3..2f01b64 100644
--- a/libweston/compositor-headless.c
+++ b/libweston/compositor-headless.c
@@ -277,6 +277,8 @@
 		return NULL;
 
 	b->compositor = compositor;
+	compositor->backend = &b->base;
+
 	if (weston_compositor_set_presentation_clock_software(compositor) < 0)
 		goto err_free;
 
@@ -291,8 +293,6 @@
 	if (!b->use_pixman && noop_renderer_init(compositor) < 0)
 		goto err_input;
 
-	compositor->backend = &b->base;
-
 	ret = weston_plugin_api_register(compositor, WESTON_WINDOWED_OUTPUT_API_NAME,
 					 &api, sizeof(api));
 
diff --git a/libweston/compositor-rdp.c b/libweston/compositor-rdp.c
index 393c118..990ddc6 100644
--- a/libweston/compositor-rdp.c
+++ b/libweston/compositor-rdp.c
@@ -1299,6 +1299,8 @@
 	b->rdp_key = config->rdp_key ? strdup(config->rdp_key) : NULL;
 	b->no_clients_resize = config->no_clients_resize;
 
+	compositor->backend = &b->base;
+
 	/* activate TLS only if certificate/key are available */
 	if (config->server_cert && config->server_key) {
 		weston_log("TLS support activated\n");
@@ -1345,8 +1347,6 @@
 			goto err_output;
 	}
 
-	compositor->backend = &b->base;
-
 	ret = weston_plugin_api_register(compositor, WESTON_RDP_OUTPUT_API_NAME,
 					 &api, sizeof(api));
 
diff --git a/libweston/compositor-wayland.c b/libweston/compositor-wayland.c
index 26cfdd5..fc92936 100644
--- a/libweston/compositor-wayland.c
+++ b/libweston/compositor-wayland.c
@@ -2487,6 +2487,8 @@
 		return NULL;
 
 	b->compositor = compositor;
+	compositor->backend = &b->base;
+
 	if (weston_compositor_set_presentation_clock_software(compositor) < 0)
 		goto err_compositor;
 
@@ -2559,7 +2561,6 @@
 			           "support failed.\n");
 	}
 
-	compositor->backend = &b->base;
 	return b;
 err_display:
 	wl_display_disconnect(b->parent.wl_display);
diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c
index 070f287..60843ac 100644
--- a/libweston/compositor-x11.c
+++ b/libweston/compositor-x11.c
@@ -1669,6 +1669,8 @@
 	b->fullscreen = config->fullscreen;
 	b->no_input = config->no_input;
 
+	compositor->backend = &b->base;
+
 	if (weston_compositor_set_presentation_clock_software(compositor) < 0)
 		goto err_free;
 
@@ -1728,8 +1730,6 @@
 				   "support failed.\n");
 	}
 
-	compositor->backend = &b->base;
-
 	ret = weston_plugin_api_register(compositor, WESTON_WINDOWED_OUTPUT_API_NAME,
 					 &api, sizeof(api));
 
