diff --git a/src/compositor/wayland_wrapper/wlcompositor.cpp b/src/compositor/wayland_wrapper/wlcompositor.cpp
index 830cb296545e71662b40885361d064acc7862847..b28f8f8bde0e965a97c57c0244d0f8ccde1c97dc 100644
--- a/src/compositor/wayland_wrapper/wlcompositor.cpp
+++ b/src/compositor/wayland_wrapper/wlcompositor.cpp
@@ -248,6 +248,8 @@ void Compositor::processWaylandEvents()
 
 void Compositor::surfaceDestroyed(Surface *surface)
 {
+    if (defaultInputDevice()->mouseFocus() == surface)
+        defaultInputDevice()->setMouseFocus(0, QPoint(), QPoint());
     m_surfaces.removeOne(surface);
     m_dirty_surfaces.remove(surface);
     if (m_directRenderSurface == surface)