--- vnc/vncclientthread.cpp.orig	2014-01-28 07:52:13.000000000 +0900
+++ vnc/vncclientthread.cpp	2014-02-09 20:59:28.000000000 +0900
@@ -601,6 +601,12 @@
 
     // Try to set the option active
     optval = 1;
+#ifdef __APPLE__
+    if (setsockopt(cl->sock, IPPROTO_TCP, TCP_KEEPALIVE, &optval, optlen) < 0) {
+        kError(5011) << "setsockopt(TCP_KEEPALIVE)" << strerror(errno);
+        return;
+    }
+#else
     if (setsockopt(cl->sock, SOL_SOCKET, SO_KEEPALIVE, &optval, optlen) < 0) {
         kError(5011) << "setsockopt(SO_KEEPALIVE)" << strerror(errno);
         return;
@@ -623,6 +629,7 @@
         kError(5011) << "setsockopt(TCP_KEEPCNT)" << strerror(errno);
         return;
     }
+#endif
     m_keepalive.set = true;
     kDebug(5011) << "TCP keepalive set";
 }
