diff --git a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
index 290d328d87bfce4043ed987c5f0db524a77b5c02..e922a8153811d7cbe6b2aadeb8a6260912103a51 100644
--- a/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
+++ b/src/drivers/Wayland/Fl_Wayland_Window_Driver.cxx
@@ -1933,7 +1933,9 @@ void Fl_Wayland_Window_Driver::resize(int X, int Y, int W, int H) {
         wl_subsurface_set_position(fl_win->subsurface, X * f, Y * f);
         wl_surface_commit(parent_xid->wl_surface);
       } else if (!xid_rect) {
-        if (is_a_move) wl_subsurface_set_position(fl_win->subsurface, X * f, Y * f);
+        if (is_a_move && fl_win->subsurface) {
+          wl_subsurface_set_position(fl_win->subsurface, X * f, Y * f);
+        }
         wl_surface_commit(parent_xid->wl_surface);
       }
     }