diff --git a/src/box/lua/box_net.lua b/src/box/lua/box_net.lua
index f7624b182b1d14661c43d19679f037510deb237c..d84b130e7e51decbc2d3c0e73e45a9136f82fcb2 100644
--- a/src/box/lua/box_net.lua
+++ b/src/box/lua/box_net.lua
@@ -284,19 +284,22 @@ box.net.box.new = function(host, port, reconnect_timeout)
             if self.s ~= nil then
                 return true
             end
-            self.s = box.socket.tcp()
-            if self.s == nil then
+
+            local sc = box.socket.tcp()
+            if sc == nil then
                 self:fatal("Can't create socket")
                 return false
             end
 
-            local s = { self.s:connect( self.host, self.port ) }
+            local s = { sc:connect( self.host, self.port ) }
             if s[1] == nil then
                 self:fatal("Can't connect to %s:%s: %s",
                     self.host, self.port, s[4])
                 return false
             end
 
+            self.s = sc
+
             return true
         end,
 
diff --git a/test/box/net.box.result b/test/box/net.box.result
index ad130a494bd09785e3ef56ac60e8765405da656a..89b69c3cfdbb946655acdac51796f7c8f84acfaa 100644
--- a/test/box/net.box.result
+++ b/test/box/net.box.result
@@ -173,9 +173,9 @@ lua remote:close()
 ...
 lua remote:close()
 ---
-error: '[string "box.net = {..."]:399: box.net.box: already closed'
+error: '[string "box.net = {..."]:402: box.net.box: already closed'
 ...
 lua remote:ping()
 ---
-error: '[string "box.net = {..."]:404: box.net.box: connection was closed'
+error: '[string "box.net = {..."]:407: box.net.box: connection was closed'
 ...