diff --git a/dwl.c b/dwl.c
index c0c5c08..ea0a791 100644
--- a/dwl.c
+++ b/dwl.c
@@ -807,10 +807,8 @@ createlayersurface(struct wl_listener *listener, void *data)
 	struct wlr_layer_surface_v1_state old_state;
 	struct wlr_scene_tree *l = layers[layermap[wlr_layer_surface->pending.layer]];
 
-	if (!wlr_layer_surface->output)
-		wlr_layer_surface->output = selmon ? selmon->wlr_output : NULL;
-
-	if (!wlr_layer_surface->output) {
+	if (!wlr_layer_surface->output
+			&& !(wlr_layer_surface->output = selmon ? selmon->wlr_output : NULL)) {
 		wlr_layer_surface_v1_destroy(wlr_layer_surface);
 		return;
 	}