diff --git a/gdk/wayland/gdkcursor-wayland.c b/gdk/wayland/gdkcursor-wayland.c
index 70d368d..f004d94 100644
--- a/gdk/wayland/gdkcursor-wayland.c
+++ b/gdk/wayland/gdkcursor-wayland.c
@@ -293,11 +293,13 @@ _gdk_wayland_display_get_cursor_for_type (GdkDisplay    *display,
         {
           gchar *filename;
           filename = g_build_filename (directories[j],
-                                       "wayland",
+                                       "weston",
                                        cursor_definitions[i].filename,
                                        NULL);
           if (g_file_test (filename, G_FILE_TEST_EXISTS))
             {
+		    g_warning ("loading cursor: %s", filename);
+
               pixbuf = gdk_pixbuf_new_from_file (filename, &error);
 
               if (error != NULL)
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index ace1bb1..3bf3f58 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -135,18 +135,19 @@ gdk_device_core_set_window_cursor (GdkDevice *device,
                                    GdkCursor *cursor)
 {
   GdkWaylandDevice *wd = GDK_DEVICE_CORE(device)->device;
+  GdkDisplay *display;
   struct wl_buffer *buffer;
   int x, y;
 
-  if (cursor)
+  if (cursor == NULL)
     {
-      buffer = _gdk_wayland_cursor_get_buffer(cursor, &x, &y);
-      wl_input_device_attach(wd->device, wd->time, buffer, x, y);
-    }
-  else
-    {
-      wl_input_device_attach(wd->device, wd->time, NULL, 0, 0);
+      display = gdk_window_get_display (window);
+      cursor = _gdk_wayland_display_get_cursor_for_type (display,
+							 GDK_LEFT_PTR);
     }
+
+  buffer = _gdk_wayland_cursor_get_buffer(cursor, &x, &y);
+  wl_input_device_attach(wd->device, wd->time, buffer, x, y);
 }
 
 static void
