diff --git a/common/network/UnixSocket.cxx b/common/network/UnixSocket.cxx
index f464ac8..8a223e4 100644
--- a/common/network/UnixSocket.cxx
+++ b/common/network/UnixSocket.cxx
@@ -21,13 +21,11 @@
 #include <config.h>
 #endif
 
-#include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/socket.h>
 #include <sys/un.h>
 #include <unistd.h>
 #include <errno.h>
-#include <string.h>
 #include <signal.h>
 #include <fcntl.h>
 #include <stdlib.h>
@@ -53,13 +51,12 @@
 
 // -=- UnixSocket
 
-UnixSocket::UnixSocket(int sock, bool close)
-  : Socket(new FdInStream(sock), new FdOutStream(sock), true), closeFd(close)
+UnixSocket::UnixSocket(int sock)
+  : Socket(new FdInStream(sock), new FdOutStream(sock))
 {
 }
 
 UnixSocket::UnixSocket(const char *path)
-  : closeFd(true)
 {
   int sock, err, result;
   sockaddr_un addr;
@@ -94,16 +91,10 @@
   // Create the input and output streams
   instream = new FdInStream(sock);
   outstream = new FdOutStream(sock);
-  ownStreams = true;
 }
 
 UnixSocket::~UnixSocket() {
-  if (closeFd)
-    close(getFd());
-}
-
-int UnixSocket::getMyPort() {
-  return 0;
+  close(getFd());
 }
 
 char* UnixSocket::getPeerAddress() {
@@ -137,18 +128,10 @@
   return rfb::strDup("(unnamed UNIX socket)");
 }
 
-int UnixSocket::getPeerPort() {
-  return 0;
-}
-
 char* UnixSocket::getPeerEndpoint() {
   return getPeerAddress();
 }
 
-bool UnixSocket::sameMachine() {
-  return true;
-}
-
 void UnixSocket::shutdown()
 {
   Socket::shutdown();
@@ -208,11 +191,6 @@
   }
 }
 
-UnixListener::UnixListener(int sock)
-{
-  fd = sock;
-}
-
 UnixListener::~UnixListener()
 {
   struct sockaddr_un addr;
