Index: /trunk/src/VBox/Additions/x11/VBoxClient/draganddrop.cpp
===================================================================
--- /trunk/src/VBox/Additions/x11/VBoxClient/draganddrop.cpp	(revision 42318)
+++ /trunk/src/VBox/Additions/x11/VBoxClient/draganddrop.cpp	(revision 42319)
@@ -595,5 +595,5 @@
         XChangeProperty(m_pDisplay, m_proxyWin, xAtom(XA_XdndAware), XA_ATOM, 32, PropModeReplace,
                         reinterpret_cast<unsigned char*>(&ver), 1);
-    }while(0);
+    } while(0);
 
     m_state = Initialized;
@@ -1137,5 +1137,5 @@
             }
         }
-    }while(tries--);
+    } while(tries--);
     if (clme)
     {
@@ -1665,6 +1665,6 @@
                 }
             }
-        }while(!ASMAtomicReadBool(&m_fSrvStopping));
-    }while(0);
+        } while(!ASMAtomicReadBool(&m_fSrvStopping));
+    } while(0);
 
     LogRelFlowFunc(("returning %Rrc\n", rc));
@@ -1699,5 +1699,5 @@
                             0, RTTHREADTYPE_MSG_PUMP, RTTHREADFLAGS_WAITABLE,
                             "X11-NOTIFY");
-    }while(0);
+    } while(0);
 
     /* Cleanup on failure */
@@ -1713,15 +1713,19 @@
     ASMAtomicWriteBool(&m_fSrvStopping, true);
 
-    /* Send a x11 client messages to the x11 event loop. */
-    XClientMessageEvent m;
-    RT_ZERO(m);
-    m.type         = ClientMessage;
-    m.display      = m_pDisplay;
-    m.window       = None;
-    m.message_type = xAtom(XA_dndstop);
-    m.format       = 32;
-    int xrc = XSendEvent(m_pDisplay, None, True, NoEventMask, reinterpret_cast<XEvent*>(&m));
-    if (RT_UNLIKELY(xrc == 0))
-        DO(("DnD_TERM: error sending xevent\n"));
+    asm volatile ("int3");
+    if (m_pDisplay)
+    {
+        /* Send a x11 client messages to the x11 event loop. */
+        XClientMessageEvent m;
+        RT_ZERO(m);
+        m.type         = ClientMessage;
+        m.display      = m_pDisplay;
+        m.window       = None;
+        m.message_type = xAtom(XA_dndstop);
+        m.format       = 32;
+        int xrc = XSendEvent(m_pDisplay, None, True, NoEventMask, reinterpret_cast<XEvent*>(&m));
+        if (RT_UNLIKELY(xrc == 0))
+                DO(("DnD_TERM: error sending xevent\n"));
+    }
     /* Wait for our event threads to stop. */
 //    if (m_hX11Thread)
@@ -1761,5 +1765,5 @@
                 return rc;
         }
-    }while(!ASMAtomicReadBool(&pSrv->m_fSrvStopping));
+    } while(!ASMAtomicReadBool(&pSrv->m_fSrvStopping));
 
     return VINF_SUCCESS;
