diff --git a/src/protocols/XDGOutput.cpp b/src/protocols/XDGOutput.cpp
index ab0820e04..274f6a19c 100644
--- a/src/protocols/XDGOutput.cpp
+++ b/src/protocols/XDGOutput.cpp
@@ -77,7 +77,7 @@ void CXDGOutputProtocol::onManagerGetXDGOutput(wl_client* client, wl_resource* r
 
     SXDGOutput* pXDGOutput = m_vXDGOutputs.emplace_back(std::make_unique<SXDGOutput>(PMONITOR)).get();
 #ifndef NO_XWAYLAND
-    if (g_pXWaylandManager->m_sWLRXWayland->server->client == client)
+    if (g_pXWaylandManager->m_sWLRXWayland && g_pXWaylandManager->m_sWLRXWayland->server && g_pXWaylandManager->m_sWLRXWayland->server->client == client)
         pXDGOutput->isXWayland = true;
 #endif
     pXDGOutput->client = client;
@@ -124,4 +124,4 @@ void CXDGOutputProtocol::updateAllOutputs() {
 
         wlr_output_schedule_done(o->monitor->output);
     }
-}
\ No newline at end of file
+}