diff --git a/dwl.c b/dwl.c
index 84e5f2e..65cb97a 100644
--- a/dwl.c
+++ b/dwl.c
@@ -2253,8 +2253,9 @@ xytonode(double x, double y, struct wlr_surface **psurface,
 
 	for (layer = focus_order; layer < END(focus_order); layer++) {
 		if ((node = wlr_scene_node_at(layers[*layer], x, y, nx, ny))) {
-			if (node->type == WLR_SCENE_NODE_SURFACE)
-				surface = wlr_scene_surface_from_node(node)->surface;
+			if (node->type == WLR_SCENE_NODE_BUFFER)
+				surface = wlr_scene_surface_from_buffer(
+						wlr_scene_buffer_from_node(node))->surface;
 			/* Walk the tree to find a node that knows the client */
 			for (pnode = node; pnode && !c; pnode = pnode->parent)
 				c = pnode->data;