Merge branch 'master' of https://github.com/ken3/tigervnc
diff --git a/unix/xserver/hw/vnc/XserverDesktop.cc b/unix/xserver/hw/vnc/XserverDesktop.cc
index f6e6a7f..1428791 100644
--- a/unix/xserver/hw/vnc/XserverDesktop.cc
+++ b/unix/xserver/hw/vnc/XserverDesktop.cc
@@ -443,6 +443,7 @@
   sock->outStream().setBlocking(false);
   vlog.debug("new client, sock %d", sock->getFd());
   sockserv->addSocket(sock);
+  vncSetNotifyFd(sock->getFd(), screenIndex, true, false);
 
   return true;
 }
@@ -536,6 +537,7 @@
 void XserverDesktop::addClient(Socket* sock, bool reverse)
 {
   vlog.debug("new client, sock %d reverse %d",sock->getFd(),reverse);
+  sock->outStream().setBlocking(false);
   server->addSocket(sock, reverse);
   vncSetNotifyFd(sock->getFd(), screenIndex, true, false);
 }
diff --git a/unix/xserver/hw/vnc/vncBlockHandler.c b/unix/xserver/hw/vnc/vncBlockHandler.c
index 390a9b3..ec17cc0 100644
--- a/unix/xserver/hw/vnc/vncBlockHandler.c
+++ b/unix/xserver/hw/vnc/vncBlockHandler.c
@@ -68,7 +68,7 @@
   int mask = (read ? X_NOTIFY_READ : 0) | (write ? X_NOTIFY_WRITE : 0);
   SetNotifyFd(fd, vncSocketNotify, mask, (void*)scrIdx);
 #else
-  static struct vncFdEntry* entry;
+  struct vncFdEntry* entry;
 
   entry = fdsHead;
   while (entry) {
@@ -99,8 +99,8 @@
 #if XORG >= 119
   RemoveNotifyFd(fd);
 #else
-  static struct vncFdEntry** prev;
-  static struct vncFdEntry* entry;
+  struct vncFdEntry** prev;
+  struct vncFdEntry* entry;
 
   prev = &fdsHead;
   entry = fdsHead;