diff --git a/src/Tunnel.hs b/src/Tunnel.hs
--- a/src/Tunnel.hs
+++ b/src/Tunnel.hs
@@ -200,8 +200,9 @@
   where
     runApp :: N.AppData -> WS.ConnectionOptions -> WS.ServerApp -> IO ()
     runApp appData opts app = do
-      let socket = fromJust $ N.appRawSocket appData
-      stream <- WS.makeStream (N.recv socket defaultRecvBufferSize <&> \payload -> if payload == mempty then Nothing else Just payload) (NL.sendAll socket . fromJust)
+      stream <- WS.makeStream (N.appRead appData <&> \payload -> if payload == mempty then Nothing else Just payload) (N.appWrite appData . toStrict . fromJust)
+      --let socket = fromJust $ N.appRawSocket appData
+      --stream <- WS.makeStream (N.recv socket defaultRecvBufferSize <&> \payload -> if payload == mempty then Nothing else Just payload) (NL.sendAll socket . fromJust)
       bracket (WS.makePendingConnectionFromStream stream opts)
               (\conn -> catch (WS.close $ WS.pendingStream conn) (\(_ :: SomeException) -> return ()))
               app
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -21,6 +21,7 @@
 import Tunnel
 import Types
 import Protocols
+import Credentials
 import qualified Socks5 as Socks5
 
 testTCPLocalToRemote :: Bool -> IO ()
@@ -33,7 +34,8 @@
 
   -- SERVER
   let serverPort = 8080
-  let serverWithoutTLS = runServer useTLS ("0.0.0.0", serverPort) (const True)
+  let tls = if useTLS then Just (Credentials.certificate, Credentials.key) else Nothing
+  let serverWithoutTLS = runServer tls ("0.0.0.0", serverPort) (const True)
 
   -- CLIENT
   let tunnelSetting = TunnelSettings {
@@ -54,6 +56,7 @@
           , tlsSNI = "toto.com"
           , websocketPingFrequencySec = 30
           , customHeaders = [(CI.mk "toto", "tata"), (CI.mk "titi", "tutu")]
+          , tlsVerifyCertificate = False
       }
   let client = runClient tunnelSetting
 
@@ -95,7 +98,8 @@
 
   -- SERVER
   let serverPort = 8080
-  let serverWithoutTLS = runServer useTLS ("0.0.0.0", serverPort) (const True)
+  let tls = if useTLS then Just (Credentials.certificate, Credentials.key) else Nothing
+  let serverWithoutTLS = runServer tls ("0.0.0.0", serverPort) (const True)
 
   -- CLIENT
   let tunnelSetting = TunnelSettings {
@@ -116,6 +120,7 @@
           , tlsSNI = "toto.com"
           , websocketPingFrequencySec = 30
           , customHeaders = [(CI.mk "toto", "tata"), (CI.mk "titi", "tutu")]
+          , tlsVerifyCertificate = False
       }
   let client = runClient tunnelSetting
 
@@ -156,7 +161,8 @@
 
   -- SERVER
   let serverPort = 8080
-  let serverWithoutTLS = runServer useTLS ("0.0.0.0", serverPort) (const True)
+  let tls = if useTLS then Just (Credentials.certificate, Credentials.key) else Nothing
+  let serverWithoutTLS = runServer tls ("0.0.0.0", serverPort) (const True)
 
   -- CLIENT
   let tunnelSetting = TunnelSettings {
@@ -177,6 +183,7 @@
           , tlsSNI = "toto.com"
           , websocketPingFrequencySec = 30
           , customHeaders = [(CI.mk "toto", "tata"), (CI.mk "titi", "tutu")]
+          , tlsVerifyCertificate = False
       }
   let client = runClient tunnelSetting
 
diff --git a/wstunnel.cabal b/wstunnel.cabal
--- a/wstunnel.cabal
+++ b/wstunnel.cabal
@@ -1,5 +1,5 @@
 name:                wstunnel
-version:             0.5.0.0
+version:             0.5.1.0
 synopsis:            Tunneling program over websocket protocol
 description:         For more information regarding wstunnel, please refer to README.md
 homepage:            https://github.com/githubuser/wstunnel#readme
