diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a4c2a91e7763f6e4c6bfb984a3fe74bd78642fd6..a61453ed0685cf7948b78cd58c304a3efa44adfe 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -79,7 +79,6 @@ set (common_sources
      lua/info.cc
      lua/stat.cc
      lua/errinj.cc
-     lua/slab.cc
      lua/plugin.cc
      lua/ipc.cc
      lua/socket.cc
diff --git a/src/box/CMakeLists.txt b/src/box/CMakeLists.txt
index d27f8f3851dc5f61a3ba674a351b2f0c2a311f8b..5b3bddfa463c9b5f22e2a4b8abecf0f36e24b5aa 100644
--- a/src/box/CMakeLists.txt
+++ b/src/box/CMakeLists.txt
@@ -35,6 +35,7 @@ tarantool_module("box"
     ${lua_sources}
     lua/call.cc
     lua/tuple.cc
+    lua/slab.cc
     lua/index.cc
     lua/space.cc)
 
diff --git a/src/lua/slab.cc b/src/box/lua/slab.cc
similarity index 97%
rename from src/lua/slab.cc
rename to src/box/lua/slab.cc
index 8d5d51d4b411bb109fba0f0e8071bb8094258e07..e9509d6ddcdace5b4c4dbb4241b47455a2c9c36e 100644
--- a/src/lua/slab.cc
+++ b/src/box/lua/slab.cc
@@ -26,7 +26,7 @@
  * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
-#include "lua/slab.h"
+#include "box/lua/slab.h"
 #include "lua/utils.h"
 
 extern "C" {
@@ -104,7 +104,7 @@ lbox_slab_check(struct lua_State *L __attribute__((unused)))
 
 /** Initialize box.slab package. */
 void
-tarantool_lua_slab_init(struct lua_State *L)
+box_lua_slab_init(struct lua_State *L)
 {
 	lua_getfield(L, LUA_GLOBALSINDEX, "box");
 	lua_pushstring(L, "slab");
diff --git a/src/lua/slab.h b/src/box/lua/slab.h
similarity index 96%
rename from src/lua/slab.h
rename to src/box/lua/slab.h
index 2b1ab55d917cf78628ce17f5e3c2f03cb5254317..4994f124e30eaf2dcc6d332bf45b36da44cf70f7 100644
--- a/src/lua/slab.h
+++ b/src/box/lua/slab.h
@@ -30,6 +30,6 @@
  */
 
 struct lua_State;
-void tarantool_lua_slab_init(struct lua_State *L);
+void box_lua_slab_init(struct lua_State *L);
 
 #endif /* INCLUDES_TARANTOOL_LUA_SLAB_H */
diff --git a/src/box/lua/tuple.cc b/src/box/lua/tuple.cc
index e241e5c67fbf0ed1fef19aef4b659e622ec9285b..b0be79216011e39039d1f9e2b7f60af917d38c75 100644
--- a/src/box/lua/tuple.cc
+++ b/src/box/lua/tuple.cc
@@ -27,6 +27,7 @@
  * SUCH DAMAGE.
  */
 #include "box/lua/tuple.h"
+#include "box/lua/slab.h"
 #include "box/tuple.h"
 #include "box/tuple_update.h"
 #include "fiber.h"
@@ -633,5 +634,7 @@ box_lua_tuple_init(struct lua_State *L)
 	lua_settable(L, -3);
 	tuple_totable_mt_ref = luaL_ref(L, LUA_REGISTRYINDEX);
 	assert(tuple_totable_mt_ref != 0);
+
+	box_lua_slab_init(L);
 }
 
diff --git a/src/lua/init.cc b/src/lua/init.cc
index b9f4785bff10c7c09fe3ceae1692b99e0bb9d51a..da323de1ee67fc860b0a31d846086805084085e6 100644
--- a/src/lua/init.cc
+++ b/src/lua/init.cc
@@ -48,7 +48,6 @@ extern "C" {
 #include "lua/ipc.h"
 #include "lua/socket.h"
 #include "lua/info.h"
-#include "lua/slab.h"
 #include "lua/stat.h"
 #include "lua/session.h"
 #include "lua/cjson.h"
@@ -324,7 +323,6 @@ tarantool_lua_init()
 	tarantool_lua_cjson_init(L);
 	tarantool_lua_yaml_init(L);
 	tarantool_lua_info_init(L);
-	tarantool_lua_slab_init(L);
 	tarantool_lua_stat_init(L);
 	tarantool_lua_ipc_init(L);
 	tarantool_lua_socket_init(L);