diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+1.0.0.20
+--------
+* Fix respect '--disable-socks5'
+
 1.0.0.10
 --------
 * Add `forbidden_IPs` field in `config.json`
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -59,11 +59,11 @@
 ==========
 
 * UDP over SOCKS5 is not implemented.
-* TCP bind over SOCKS5 is not implemented* More then 2 times slower then the original Python implementation (measured at
+* TCP bind over SOCKS5 is not implemented
 * More then 2 times slower then the original Python implementation (measured at
   20M/s vs 43M/s on an Intel P8800, using the AES-256-CFB method, in software
   AES).
-* Currently only works on Linux.
+* Currently only works on Unix.
 
 
 TCP Fast Open (TFO)
@@ -114,7 +114,7 @@
 
     echo 1 > /proc/sys/net/ipv4/tcp_ecn
 
-ECN is recommended on both `local` and `remote`.
+ECN is recommended only on `remote`.
 
 Credits
 =======
diff --git a/config.json b/config.json
--- a/config.json
+++ b/config.json
@@ -1,8 +1,8 @@
 {
   "remoteHost":"0.0.0.0",
-  "remotePort":1190,
+  "remotePort":8388,
   "localHost":"localhost",
-  "localPort":1090,
+  "localPort":1080,
   "password":"birthday!",
   "fastOpen":false,
   "method":"aes-256-cfb"
diff --git a/moesocks.cabal b/moesocks.cabal
--- a/moesocks.cabal
+++ b/moesocks.cabal
@@ -1,6 +1,6 @@
 name:               moesocks
 category:           Network
-version:            1.0.0.10
+version:            1.0.0.20
 license:            Apache-2.0
 synopsis:           A functional firewall killer
 description:        A SOCKS5 proxy using the client / server architecture.
@@ -49,7 +49,7 @@
                       , text
                       , time
                       , transformers
-                      , unix
+                      --, unix
                       , unordered-containers
 
   hs-source-dirs:      src
diff --git a/src/Network/MoeSocks/App.hs b/src/Network/MoeSocks/App.hs
--- a/src/Network/MoeSocks/App.hs
+++ b/src/Network/MoeSocks/App.hs
@@ -21,6 +21,7 @@
 runJob aEnv (LocalServiceJob x)  = runLocalService aEnv x
 
 runApp :: Env -> [Job] -> IO ()
+runApp _ [] = error_ "No job to run"
 runApp aEnv someJobs = do
   _asyncs <- mapM (async . foreverRun . runJob aEnv) someJobs
   waitAnyCancel - _asyncs
diff --git a/src/Network/MoeSocks/Helper.hs b/src/Network/MoeSocks/Helper.hs
--- a/src/Network/MoeSocks/Helper.hs
+++ b/src/Network/MoeSocks/Helper.hs
@@ -27,7 +27,7 @@
 import Network.Socket.ByteString
 import Prelude hiding (take, (-)) 
 import System.Log.Logger
-import System.Posix.IO (FdOption(CloseOnExec), setFdOption)
+-- import System.Posix.IO (FdOption(CloseOnExec), setFdOption)
 import System.Random
 import System.Timeout (timeout)
 import qualified Data.ByteString as S
@@ -448,9 +448,12 @@
 
 -- Copied and slightly modified from: 
 -- https://github.com/mzero/plush/blob/master/src/Plush/Server/Warp.hs
+{-setSocketCloseOnExec :: Socket -> IO ()-}
+{-setSocketCloseOnExec aSocket =-}
+    {-setFdOption (fromIntegral - fdSocket aSocket) CloseOnExec True-}
+
 setSocketCloseOnExec :: Socket -> IO ()
-setSocketCloseOnExec aSocket =
-    setFdOption (fromIntegral - fdSocket aSocket) CloseOnExec True
+setSocketCloseOnExec = const - pure ()
 
 
 tryIO :: String -> IO a -> IO (Either IOException a)
diff --git a/src/Network/MoeSocks/Runtime.hs b/src/Network/MoeSocks/Runtime.hs
--- a/src/Network/MoeSocks/Runtime.hs
+++ b/src/Network/MoeSocks/Runtime.hs
@@ -72,9 +72,17 @@
             & _localService
 
       _remoteRelays = [_remote_TCP_Relay, _remote_UDP_Relay]
-      _localServices = _localService_TCP_Forwards
-                    <> _localService_UDP_Forwards
-                    <> pure _localService_SOCKS5
+      _localServices = 
+        let
+          _localService_SOCKS5s = 
+            if someOptions ^. O.disable_SOCKS5
+              then []
+              else pure _localService_SOCKS5
+        in
+
+        _localService_TCP_Forwards
+        <> _localService_UDP_Forwards
+        <> _localService_SOCKS5s
   in
 
   map RemoteRelayJob _remoteRelays
