diff --git a/sway/tree/output.c b/sway/tree/output.c
index e5794b8a..9d523997 100644
--- a/sway/tree/output.c
+++ b/sway/tree/output.c
@@ -66,7 +66,6 @@ void output_enable(struct sway_output *output, struct output_config *oc) {
 	}
 	struct wlr_output *wlr_output = output->wlr_output;
 	output->enabled = true;
-	apply_output_config(oc, output);
 	list_add(root->outputs, output);
 
 	output->lx = wlr_output->lx;
@@ -98,6 +97,8 @@ void output_enable(struct sway_output *output, struct output_config *oc) {
 	}
 	wl_signal_init(&output->events.destroy);
 
+	apply_output_config(oc, output);
+
 	input_manager_configure_xcursor();
 
 	wl_signal_add(&wlr_output->events.mode, &output->mode);