diff --git a/src/box/iproto.cc b/src/box/iproto.cc
index 5bdf90435a8ec25dc73ea25ad7cbb8735d622b22..3cd3fcc32b7e8bf2aef12e4979a60383cf9e668c 100644
--- a/src/box/iproto.cc
+++ b/src/box/iproto.cc
@@ -916,6 +916,8 @@ net_cord_f(va_list /* ap */)
 	 * connections.
 	 */
 	fiber_yield();
+	if (evio_service_is_active(&binary))
+		evio_service_stop(&binary);
 
 	rmean_delete(rmean_net);
 	cbus_leave(&net_tx_bus);
diff --git a/test/box-tap/cfg.result b/test/box-tap/cfg.result
index c4df849d5b55af64e797e291fd8b2807b8709c26..db080630d80d919013cbd3a63f74536f12466ff0 100644
--- a/test/box-tap/cfg.result
+++ b/test/box-tap/cfg.result
@@ -1,5 +1,5 @@
 TAP version 13
-1..40
+1..41
 ok - box is not started
 ok - invalid replication_source
 ok - invalid wal_mode
@@ -40,3 +40,4 @@ ok - logger_nonblock new value
 ok - dynamic listen
 ok - dynamic listen
 ok - reuse unix socket
+ok - delete socket at exit
diff --git a/test/box-tap/cfg.test.lua b/test/box-tap/cfg.test.lua
index 78b35c70e7410c3b5709a7549473594a686a9da8..6b1b19a0839e433239a6ccfd5ee4980d43cf98ba 100755
--- a/test/box-tap/cfg.test.lua
+++ b/test/box-tap/cfg.test.lua
@@ -4,7 +4,7 @@ local tap = require('tap')
 local test = tap.test('cfg')
 local socket = require('socket')
 local fio = require('fio')
-test:plan(40)
+test:plan(41)
 
 --------------------------------------------------------------------------------
 -- Invalid values
@@ -182,5 +182,9 @@ if s then s:close() end
 box.cfg{ listen = '' }
 os.remove(path2)
 
+code = " box.cfg{ listen='unix/:'" .. path .. "' } "
+run_script(code)
+test:isnil(fio.stat(path), "delete socket at exit")
+
 test:check()
 os.exit(0)