diff --git a/x0vncserver/x0vncserver.cxx b/x0vncserver/x0vncserver.cxx
index 212ae07..dac2e7c 100644
--- a/x0vncserver/x0vncserver.cxx
+++ b/x0vncserver/x0vncserver.cxx
@@ -132,7 +132,7 @@
 public:
   XDesktop(Display* dpy_)
         : dpy(dpy_), pb(0), server(0), image(0), pollmgr(0),
-      oldButtonMask(0), haveXtest(false), maxButtons(0)
+          oldButtonMask(0), haveXtest(false), maxButtons(0), running(false)
   {
 #ifdef HAVE_XTEST
     int xtestEventBase;
@@ -193,16 +193,28 @@
                                   (rdr::U8*)image->xim->data, this);
     server = vs;
     server->setPixelBuffer(pb);
+
+    running = true;
   }
 
   virtual void stop() {
+    running = false;
+
+    // FIXME: Delete images as well?!
     delete pb;
     delete pollmgr;
-    // FIXME: Delete images as well?!
+
+    pb = 0;
+    pollmgr = 0;
+  }
+
+  inline bool isRunning() {
+    return running;
   }
 
   inline void poll() {
-    pollmgr->poll();
+    if (pollmgr)
+      pollmgr->poll();
   }
 
   virtual void pointerEvent(const Point& pos, int buttonMask) {
@@ -265,6 +277,7 @@
   int oldButtonMask;
   bool haveXtest;
   int maxButtons;
+  bool running;
 };
 
 
@@ -509,6 +522,10 @@
           server.processSocketEvent(*i);
       }
 
+      // Don't poll if the desktop object in not ready.
+      if (!desktop.isRunning())
+        continue;
+
       server.checkTimeouts();
 
       if (sched.goodTimeToPoll()) {
