diff --git a/extra/schema_fill.lua b/extra/schema_fill.lua
index 0fc6caf1debf1d6d41b580189683967cb911b1bc..975caba8ce9f031ef7482e112631f84c067d44ba 100644
--- a/extra/schema_fill.lua
+++ b/extra/schema_fill.lua
@@ -10,12 +10,12 @@ _priv = box.space[box.schema.PRIV_ID]
 -- define schema version
 _schema:insert{'version', 1, 6}
 -- define system spaces
-_space:insert{_schema.n, ADMIN, '_schema', 0}
-_space:insert{_space.n, ADMIN, '_space', 0}
-_space:insert{_index.n, ADMIN, '_index', 0}
-_space:insert{_func.n, ADMIN, '_func', 0}
-_space:insert{_user.n, ADMIN, '_user', 0}
-_space:insert{_priv.n, ADMIN, '_priv', 0}
+_space:insert{_schema.n, ADMIN, '_schema', 'memtx', 0}
+_space:insert{_space.n, ADMIN, '_space', 'memtx', 0}
+_space:insert{_index.n, ADMIN, '_index', 'memtx', 0}
+_space:insert{_func.n, ADMIN, '_func', 'memtx', 0}
+_space:insert{_user.n, ADMIN, '_user', 'memtx', 0}
+_space:insert{_priv.n, ADMIN, '_priv', 'memtx', 0}
 -- define indexes
 _index:insert{_schema.n, 0, 'primary', 'tree', 1, 1, 0, 'str'}
 
diff --git a/src/bootstrap.snap b/src/bootstrap.snap
index 71d7828c44f874099567fc642e08e603799c4622..70257782f59a443cdd8e51a3358586f571749bbd 100644
Binary files a/src/bootstrap.snap and b/src/bootstrap.snap differ
diff --git a/src/box/alter.cc b/src/box/alter.cc
index 292aba6a0f601e43c246e63b214d6a329364d116..74bb31ff5dc9d398156c3ef9240d21cb67cab31b 100644
--- a/src/box/alter.cc
+++ b/src/box/alter.cc
@@ -40,24 +40,25 @@
 #include <ctype.h>
 
 /** _space columns */
-#define ID			0
-#define UID			1
-#define NAME			2
-#define ARITY			3
-#define FLAGS			4
+#define ID               0
+#define UID              1
+#define NAME             2
+#define ENGINE           3
+#define ARITY            4
+#define FLAGS            5
 /** _index columns */
-#define INDEX_ID		1
-#define INDEX_TYPE		3
-#define INDEX_IS_UNIQUE		4
-#define INDEX_PART_COUNT	5
+#define INDEX_ID         1
+#define INDEX_TYPE       3
+#define INDEX_IS_UNIQUE  4
+#define INDEX_PART_COUNT 5
 
 /** _user columns */
-#define AUTH_DATA			3
+#define AUTH_DATA        3
 
 /** _priv columns */
-#define PRIV_OBJECT_TYPE	2
-#define PRIV_OBJECT_ID		3
-#define PRIV_ACCESS		4
+#define PRIV_OBJECT_TYPE 2
+#define PRIV_OBJECT_ID   3
+#define PRIV_ACCESS      4
 
 /* {{{ Auxiliary functions and methods. */
 
@@ -152,11 +153,13 @@ space_def_create_from_tuple(struct space_def *def, struct tuple *tuple,
 	def->id = tuple_field_u32(tuple, ID);
 	def->uid = tuple_field_u32(tuple, UID);
 	def->arity = tuple_field_u32(tuple, ARITY);
-	int n = snprintf(def->name, sizeof(def->name),
+	int namelen = snprintf(def->name, sizeof(def->name),
 			 "%s", tuple_field_cstr(tuple, NAME));
+	int engine_namelen = snprintf(def->engine_name, sizeof(def->engine_name),
+			 "%s", tuple_field_cstr(tuple, ENGINE));
 
 	space_def_init_flags(def, tuple);
-	space_def_check(def, n, errcode);
+	space_def_check(def, namelen, engine_namelen, errcode);
 	if (errcode != ER_ALTER_SPACE &&
 	    def->id >= SC_SYSTEM_ID_MIN && def->id < SC_SYSTEM_ID_MAX) {
 		say_warn("\n"
@@ -484,6 +487,11 @@ ModifySpace::prepare(struct alter_space *alter)
 			  (unsigned) space_id(alter->old_space),
 			  "space id is immutable");
 
+	if (strcmp(def.engine_name, alter->old_space->def.engine_name) != 0)
+		tnt_raise(ClientError, ER_ALTER_SPACE,
+			  (unsigned) space_id(alter->old_space),
+			  "can not change space engine");
+
 	if (def.arity != 0 &&
 	    def.arity != alter->old_space->def.arity &&
 	    alter->old_space->engine.state != READY_NO_KEYS &&
diff --git a/src/box/key_def.cc b/src/box/key_def.cc
index cac9a0c580540820470f882c7952deb30c1f3a5d..57a396eb3f3b9548b3877ca09cb24097dd96cda0 100644
--- a/src/box/key_def.cc
+++ b/src/box/key_def.cc
@@ -219,7 +219,8 @@ key_def_check(struct key_def *key_def)
 }
 
 void
-space_def_check(struct space_def *def, uint32_t namelen, uint32_t errcode)
+space_def_check(struct space_def *def, uint32_t namelen, uint32_t engine_namelen,
+                int32_t errcode)
 {
 	if (def->id > BOX_SPACE_MAX) {
 		tnt_raise(ClientError, errcode,
@@ -231,4 +232,9 @@ space_def_check(struct space_def *def, uint32_t namelen, uint32_t errcode)
 			  (unsigned) def->id,
 			  "space name is too long");
 	}
+	if (engine_namelen >= sizeof(def->engine_name)) {
+		tnt_raise(ClientError, errcode,
+			  (unsigned) def->id,
+			  "space engine name is too long");
+	}
 }
diff --git a/src/box/key_def.h b/src/box/key_def.h
index 668f9d5ea6dd29b9d3adb8f5089c478b635209db..e9efbe3cc79f0edffc84b88e88821cf41cf2dd69 100644
--- a/src/box/key_def.h
+++ b/src/box/key_def.h
@@ -215,6 +215,7 @@ struct space_def {
 	 */
 	uint32_t arity;
 	char name[BOX_NAME_MAX + 1];
+	char engine_name[BOX_NAME_MAX + 1];
         /**
 	 * The space is a temporary:
 	 * - it is empty at server start
@@ -226,7 +227,9 @@ struct space_def {
 
 /** Check space definition structure for errors. */
 void
-space_def_check(struct space_def *def, uint32_t namelen, uint32_t errcode);
+space_def_check(struct space_def *def, uint32_t namelen,
+                uint32_t engine_namelen,
+                int32_t errcode);
 
 /** A helper table for key_mp_type_validate */
 extern const uint32_t key_mp_type[];
diff --git a/src/box/lua/schema.lua b/src/box/lua/schema.lua
index 1ef2dba001364c29df81ef4d77e635bef5ccc7bc..a2e50ed5ee838f860cd4d81bc1297e924a659b75 100644
--- a/src/box/lua/schema.lua
+++ b/src/box/lua/schema.lua
@@ -59,9 +59,11 @@ box.schema.space.create = function(name, options)
         options = {}
     end
     local if_not_exists = options.if_not_exists
-
     local temporary = options.temporary and "temporary" or ""
-
+    local engine = "memtx"
+	if options.engine then
+		engine = options.engine
+	end
     if box.space[name] then
         if options.if_not_exists then
             return box.space[name], "not created"
@@ -91,7 +93,7 @@ box.schema.space.create = function(name, options)
     if uid == nil then
         uid = box.session.uid()
     end
-    _space:insert{id, uid, name, options.arity, temporary}
+    _space:insert{id, uid, name, engine, options.arity, temporary}
     return box.space[id], "created"
 end
 box.schema.create_space = box.schema.space.create
diff --git a/src/box/lua/space.cc b/src/box/lua/space.cc
index 4496ea316de018df6c36cf24e043cba06bfa3d34..cb0a525fc0dc385e14d325b99d8969361bc878fe 100644
--- a/src/box/lua/space.cc
+++ b/src/box/lua/space.cc
@@ -114,6 +114,11 @@ lbox_fillspace(struct lua_State *L, struct space *space, int i)
 	lua_pushstring(L, space_name(space));
 	lua_settable(L, i);
 
+	/* space.engine */
+	lua_pushstring(L, "engine");
+	lua_pushstring(L, space->def.engine_name);
+	lua_settable(L, i);
+
 	lua_pushstring(L, "enabled");
 	lua_pushboolean(L, space_index(space, 0) != 0);
 	lua_settable(L, i);
diff --git a/src/box/schema.cc b/src/box/schema.cc
index eca6e4a6061f09d21516ace375ec31e721b4e26f..83399b6d1b915477e1ee610766973a7d9c37c339 100644
--- a/src/box/schema.cc
+++ b/src/box/schema.cc
@@ -240,7 +240,9 @@ schema_init()
 	 * (and re-created) first.
 	 */
 	/* _schema - key/value space with schema description */
-	struct space_def def = { SC_SCHEMA_ID, ADMIN, 0, "_schema", false };
+	struct space_def def = {
+		SC_SCHEMA_ID, ADMIN, 0, "_schema", MEMTX, false
+	};
 	struct key_def *key_def = key_def_new(def.id,
 					      0 /* index id */,
 					      "primary", /* name */
diff --git a/src/box/space.cc b/src/box/space.cc
index c484bb2255e66733a3abe53c1bf9e9936e5d4e80..d438fac6e305b79bed4f17e67210eea0b00dc6c0 100644
--- a/src/box/space.cc
+++ b/src/box/space.cc
@@ -34,6 +34,15 @@
 #include "scoped_guard.h"
 #include "trigger.h"
 
+static struct engine*
+space_engine_find(const char *name)
+{
+	if (strcmp(name, MEMTX) == 0)
+		return &engine_no_keys;
+
+	tnt_raise(LoggedError, ER_NO_SUCH_ENGINE, name);
+}
+
 void
 space_fill_index_map(struct space *space)
 {
@@ -81,7 +90,7 @@ space_new(struct space_def *def, struct rlist *key_list)
 		space->index_map[key_def->iid] = Index::factory(key_def);
 	}
 	space_fill_index_map(space);
-	space->engine = engine_no_keys;
+	space->engine = *space_engine_find(def->engine_name);
 	space->run_triggers = true;
 	scoped_guard.is_active = false;
 	return space;
diff --git a/src/box/space.h b/src/box/space.h
index 41cb9f472cd587953f61ea2125ff04d90f1d34e1..146700e27a1cecff26524d8d53a77a3147b13a64 100644
--- a/src/box/space.h
+++ b/src/box/space.h
@@ -72,7 +72,10 @@ struct engine {
 	space_replace_f replace;
 };
 
+#define MEMTX "memtx"
+
 extern struct engine engine_no_keys;
+
 void space_build_primary_key(struct space *space);
 void space_build_all_keys(struct space *space);
 
diff --git a/src/errcode.h b/src/errcode.h
index 839a7bd21f219aaa8c70494623d5fbf696d80d41..0063ca966637b40fc66427aa1c69fcbd3b9a3be7 100644
--- a/src/errcode.h
+++ b/src/errcode.h
@@ -106,6 +106,7 @@ enum { TNT_ERRMSG_MAX = 512 };
 	/* 54 */_(ER_FUNCTION_MAX,		2, "A limit on the total number of functions has been reached: %u") \
 	/* 55 */_(ER_SPACE_ACCESS_DENIED,	2, "%s access denied for user '%s' to space '%s'") \
 	/* 56 */_(ER_USER_MAX,			2, "A limit on the total number of users has been reached: %u") \
+	/* 57 */_(ER_NO_SUCH_ENGINE,		2, "Space engine '%s' does not exist") \
 
 
 /*
diff --git a/test/big/lua.result b/test/big/lua.result
index 65a49eb15b39bd3d3f1da0479aa9546edefa1751..c84bab07982137e1eeb78874d1692c702301ebaf 100644
--- a/test/big/lua.result
+++ b/test/big/lua.result
@@ -472,7 +472,7 @@ t = {}
 ...
 index:pairs('sid_t', { iterator = 'wrong_iterator_type' })
 ---
-- error: '[string "-- schema.lua (internal file)..."]:322: Wrong iterator type: wrong_iterator_type'
+- error: '[string "-- schema.lua (internal file)..."]:324: Wrong iterator type: wrong_iterator_type'
 ...
 index = nil
 ---
diff --git a/test/box/alter.result b/test/box/alter.result
index 618a03445c72c8745b696b35db3f4664b1253e87..59bfceb3c28b222ebedfd0d72f709a4fa974b9b6 100644
--- a/test/box/alter.result
+++ b/test/box/alter.result
@@ -32,28 +32,28 @@ _space:insert{_space.n, ADMIN, 'test', 'world'}
 --
 -- There is already a tuple for the system space
 --
-_space:insert{_space.n, ADMIN, '_space', 0}
+_space:insert{_space.n, ADMIN, '_space', 'memtx', 0}
 ---
 - error: Duplicate key exists in unique index 0
 ...
-_space:replace{_space.n, ADMIN, '_space', 0}
+_space:replace{_space.n, ADMIN, '_space', 'memtx', 0}
 ---
-- [280, 1, '_space', 0]
+- [280, 1, '_space', 'memtx', 0]
 ...
-_space:insert{_index.n, ADMIN, '_index', 0}
+_space:insert{_index.n, ADMIN, '_index', 'memtx', 0}
 ---
 - error: Duplicate key exists in unique index 0
 ...
-_space:replace{_index.n, ADMIN, '_index', 0}
+_space:replace{_index.n, ADMIN, '_index', 'memtx', 0}
 ---
-- [288, 1, '_index', 0]
+- [288, 1, '_index', 'memtx', 0]
 ...
 --
 -- Can't change properties of a space
 --
-_space:replace{_space.n, ADMIN, '_space', 0}
+_space:replace{_space.n, ADMIN, '_space', 'memtx', 0}
 ---
-- [280, 1, '_space', 0]
+- [280, 1, '_space', 'memtx', 0]
 ...
 --
 -- Can't drop a system space
@@ -80,7 +80,7 @@ _space:update({_space.n}, {{'+', 0, 2}})
 --
 -- Create a space
 --
-t = _space:auto_increment{ADMIN, 'hello', 0}
+t = _space:auto_increment{ADMIN, 'hello', 'memtx', 0}
 ---
 ...
 -- Check that a space exists
@@ -173,9 +173,9 @@ _index:delete{_index.n, 0}
 ---
 - error: Can't drop the primary key in a system space, space id 288
 ...
-_space:insert{1000, ADMIN, 'hello', 0}
+_space:insert{1000, ADMIN, 'hello', 'memtx', 0}
 ---
-- [1000, 1, 'hello', 0]
+- [1000, 1, 'hello', 'memtx', 0]
 ...
 _index:insert{1000, 0, 'primary', 'tree', 1, 1, 0, 'num'}
 ---
@@ -209,9 +209,9 @@ box.snapshot()
 ADMIN = 1
 ---
 ...
-box.space['_space']:insert{1000, ADMIN, 'test', 0}
+box.space['_space']:insert{1000, ADMIN, 'test', 'memtx', 0}
 ---
-- [1000, 1, 'test', 0]
+- [1000, 1, 'test', 'memtx', 0]
 ...
 box.space[1000].n
 ---
@@ -219,7 +219,7 @@ box.space[1000].n
 ...
 box.space['_space']:delete{1000}
 ---
-- [1000, 1, 'test', 0]
+- [1000, 1, 'test', 'memtx', 0]
 ...
 box.space[1000]
 ---
diff --git a/test/box/alter.test.lua b/test/box/alter.test.lua
index 120d2237d9cbcc975b8f35a0caebbfe17b1b2672..940e42bec1143a67c5c07bab72f77d25d178860b 100644
--- a/test/box/alter.test.lua
+++ b/test/box/alter.test.lua
@@ -17,14 +17,14 @@ _space:insert{_space.n, ADMIN, 'test', 'world'}
 --
 -- There is already a tuple for the system space
 --
-_space:insert{_space.n, ADMIN, '_space', 0}
-_space:replace{_space.n, ADMIN, '_space', 0}
-_space:insert{_index.n, ADMIN, '_index', 0}
-_space:replace{_index.n, ADMIN, '_index', 0}
+_space:insert{_space.n, ADMIN, '_space', 'memtx', 0}
+_space:replace{_space.n, ADMIN, '_space', 'memtx', 0}
+_space:insert{_index.n, ADMIN, '_index', 'memtx', 0}
+_space:replace{_index.n, ADMIN, '_index', 'memtx', 0}
 --
 -- Can't change properties of a space
 --
-_space:replace{_space.n, ADMIN, '_space', 0}
+_space:replace{_space.n, ADMIN, '_space', 'memtx', 0}
 --
 -- Can't drop a system space
 --
@@ -38,7 +38,7 @@ _space:update({_space.n}, {{'+', 0, 2}})
 --
 -- Create a space
 --
-t = _space:auto_increment{ADMIN, 'hello', 0}
+t = _space:auto_increment{ADMIN, 'hello', 'memtx', 0}
 -- Check that a space exists
 space = box.space[t[0]]
 space.n
@@ -63,7 +63,7 @@ _index:replace{_index.n, 0, 'primary', 'tree', 1, 2, 0, 'num', 1, 'num'}
 _index:select{}
 -- modify indexes of a system space
 _index:delete{_index.n, 0}
-_space:insert{1000, ADMIN, 'hello', 0}
+_space:insert{1000, ADMIN, 'hello', 'memtx', 0}
 _index:insert{1000, 0, 'primary', 'tree', 1, 1, 0, 'num'}
 box.space[1000]:insert{0, 'hello, world'}
 box.space[1000]:drop()
@@ -76,7 +76,7 @@ box.snapshot()
 --# stop server default
 --# start server default
 ADMIN = 1
-box.space['_space']:insert{1000, ADMIN, 'test', 0}
+box.space['_space']:insert{1000, ADMIN, 'test', 'memtx', 0}
 box.space[1000].n
 box.space['_space']:delete{1000}
 box.space[1000]
diff --git a/test/box/alter_limits.result b/test/box/alter_limits.result
index 2b47ebd6bbf7f3b07f4a8e71287b077280425ea6..4f9eeaa9709a3e6eb7c5475725cc13df513b2e56 100644
--- a/test/box/alter_limits.result
+++ b/test/box/alter_limits.result
@@ -68,6 +68,11 @@ s:drop()
 ---
 - error: Space 512 does not exist
 ...
+-- no such engine
+box.schema.create_space('tweedleedee', { engine = 'unknown' })
+---
+- error: Space engine 'unknown' does not exist
+...
 -- explicit space id
 s = box.schema.create_space('tweedledum', { id = 3000 })
 ---
@@ -94,6 +99,11 @@ box.schema.create_space(string.rep('tweedledee', 100))
 ---
 - error: 'Failed to create space 512: space name is too long'
 ...
+-- too long space engine name
+box.schema.create_space('tweedleedee', { engine = string.rep('too-long', 100) })
+---
+- error: 'Failed to create space 512: space engine name is too long'
+...
 -- space name limit
 box.schema.create_space(string.rep('t', box.schema.NAME_MAX)..'_')
 ---
@@ -244,7 +254,7 @@ s:select{}
 ---
 - - [1, 2]
 ...
-ARITY = 3
+ARITY = 4
 ---
 ...
 -- increase arity -- error
@@ -264,7 +274,7 @@ box.space['_space']:update(s.n, {{"=", ARITY, 1}})
 -- remove arity - ok
 box.space['_space']:update(s.n, {{"=", ARITY, 0}})
 ---
-- [512, 1, 'test', 0, '']
+- [512, 1, 'test', 'memtx', 0, '']
 ...
 s:select{}
 ---
@@ -285,7 +295,7 @@ s:select{}
 -- set arity of an empty space
 box.space['_space']:update(s.n, {{"=", ARITY, 3}})
 ---
-- [512, 1, 'test', 3, '']
+- [512, 1, 'test', 'memtx', 3, '']
 ...
 s:select{}
 ---
diff --git a/test/box/alter_limits.test.lua b/test/box/alter_limits.test.lua
index f55125206f99489131094b0fe5abec834b448e79..7b6fcc41695f234404839f561ccce5927bc33572 100644
--- a/test/box/alter_limits.test.lua
+++ b/test/box/alter_limits.test.lua
@@ -25,6 +25,8 @@ s = box.schema.create_space('tweedledum', { if_not_exists = true })
 s:drop()
 -- no such space
 s:drop()
+-- no such engine
+box.schema.create_space('tweedleedee', { engine = 'unknown' })
 -- explicit space id
 s = box.schema.create_space('tweedledum', { id = 3000 })
 s.n
@@ -35,6 +37,8 @@ box.schema.create_space('tweedledee', { id = 'tweedledee' })
 s:drop()
 -- too long space name
 box.schema.create_space(string.rep('tweedledee', 100))
+-- too long space engine name
+box.schema.create_space('tweedleedee', { engine = string.rep('too-long', 100) })
 -- space name limit
 box.schema.create_space(string.rep('t', box.schema.NAME_MAX)..'_')
 s = box.schema.create_space(string.rep('t', box.schema.NAME_MAX - 1)..'_')
@@ -84,7 +88,7 @@ s:insert{1}
 s:insert{1, 2}
 s:insert{1, 2, 3}
 s:select{}
-ARITY = 3
+ARITY = 4
 -- increase arity -- error
 
 box.space['_space']:update(s.n, {{"=", ARITY, 3}})
diff --git a/test/box/misc.result b/test/box/misc.result
index b84c05a3806f610eb400dd6394f78dae849bb052..93806232d54deabc0e39c1f2424249373cef2d02 100644
--- a/test/box/misc.result
+++ b/test/box/misc.result
@@ -200,6 +200,7 @@ t;
   - 'box.error.ER_TUPLE_FORMAT_LIMIT : 16'
   - 'box.error.ER_FIELD_TYPE : 23'
   - 'box.error.ER_OK : 0'
+  - 'box.error.ER_NO_SUCH_ENGINE : 57'
   - 'box.error.ER_TUPLE_NOT_FOUND : 4'
   - 'box.error.ER_INDEX_ARITY : 39'
   - 'box.error.ER_WAL_IO : 40'
diff --git a/test/box/schema.result b/test/box/schema.result
index bdb2015badd93cc310c92ce75f90616944c8451a..ce6c600aa3c5dd794e7a796844e381bae56b54af 100644
--- a/test/box/schema.result
+++ b/test/box/schema.result
@@ -11,6 +11,7 @@ t
 ---
 - - 'temporary: false'
   - 'n: 0'
+  - 'engine: memtx'
   - 'enabled: true'
   - 'name: tweedledum'
   - 'arity: 0'
diff --git a/test/box/temp_spaces.result b/test/box/temp_spaces.result
index 133932e0b52554021cb429a791918c7e56c54263..41b8ca4e187853cb1b80b673349a331320779b82 100644
--- a/test/box/temp_spaces.result
+++ b/test/box/temp_spaces.result
@@ -1,6 +1,6 @@
 -- temporary spaces
 -- not a temporary
-FLAGS = 4
+FLAGS = 5
 ---
 ...
 s = box.schema.create_space('t', { temporary = true })
@@ -55,7 +55,7 @@ s:len()
 ...
 box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, 'temporary'}})
 ---
-- [512, 1, 't', 0, 'temporary']
+- [512, 1, 't', 'memtx', 0, 'temporary']
 ...
 box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, ''}})
 ---
@@ -63,7 +63,7 @@ box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, ''}})
 ...
 --# stop server default
 --# start server default
-FLAGS = 4
+FLAGS = 5
 ---
 ...
 s = box.space.t
@@ -79,7 +79,7 @@ s.temporary
 ...
 box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, 'no-temporary'}})
 ---
-- [512, 1, 't', 0, 'no-temporary']
+- [512, 1, 't', 'memtx', 0, 'no-temporary']
 ...
 s.temporary
 ---
@@ -87,7 +87,7 @@ s.temporary
 ...
 box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, ',:asfda:temporary'}})
 ---
-- [512, 1, 't', 0, ',:asfda:temporary']
+- [512, 1, 't', 'memtx', 0, ',:asfda:temporary']
 ...
 s.temporary
 ---
@@ -95,7 +95,7 @@ s.temporary
 ...
 box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, 'a,b,c,d,e'}})
 ---
-- [512, 1, 't', 0, 'a,b,c,d,e']
+- [512, 1, 't', 'memtx', 0, 'a,b,c,d,e']
 ...
 s.temporary
 ---
@@ -103,7 +103,7 @@ s.temporary
 ...
 box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, 'temporary'}})
 ---
-- [512, 1, 't', 0, 'temporary']
+- [512, 1, 't', 'memtx', 0, 'temporary']
 ...
 s.temporary
 ---
@@ -118,7 +118,7 @@ s:insert{1, 2, 3}
 ...
 box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, 'temporary'}})
 ---
-- [512, 1, 't', 0, 'temporary']
+- [512, 1, 't', 'memtx', 0, 'temporary']
 ...
 box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, 'no-temporary'}})
 ---
@@ -130,7 +130,7 @@ s:delete{1}
 ...
 box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, 'no-temporary'}})
 ---
-- [512, 1, 't', 0, 'no-temporary']
+- [512, 1, 't', 'memtx', 0, 'no-temporary']
 ...
 s:drop()
 ---
diff --git a/test/box/temp_spaces.test.lua b/test/box/temp_spaces.test.lua
index 44ee7013f0f057892bfc9b8fa27e577695c5bc30..194f2eff8b4ab6152587030d92900ebf35697e91 100644
--- a/test/box/temp_spaces.test.lua
+++ b/test/box/temp_spaces.test.lua
@@ -1,6 +1,6 @@
 -- temporary spaces
 -- not a temporary
-FLAGS = 4
+FLAGS = 5
 s = box.schema.create_space('t', { temporary = true })
 s.temporary
 s:drop()
@@ -27,7 +27,7 @@ box.space[box.schema.SPACE_ID]:update(s.n, {{'=', FLAGS, ''}})
 
 --# stop server default
 --# start server default
-FLAGS = 4
+FLAGS = 5
 
 s = box.space.t
 s:len()
diff --git a/test/box/xlog.result b/test/box/xlog.result
index 1d4a5abcb6daf170b363afac59fbc398ac8672eb..ad4de5f8ec3b26afc3ea2ad5841dfc9256485797 100644
--- a/test/box/xlog.result
+++ b/test/box/xlog.result
@@ -35,19 +35,3 @@ box.space[0]:insert{3, 'third tuple'}
 # Inprogress xlog with bad record must be deleted during recovery.
 
 00000000000000000006.xlog.inprogress has been successfully deleted
-
-A test case for https://bugs.launchpad.net/tarantool/+bug/1052018
-panic_on_wal_error doesn't work for duplicate key errors
-
-box.space['test']:get{1}
----
-- [1, 'first tuple']
-...
-box.space['test']:get{2}
----
-- [2, 'second tuple']
-...
-box.space['test']:len()
----
-- 2
-...
diff --git a/test/box/xlog.test.py b/test/box/xlog.test.py
index 62cec54948ed2f1f09f852e7ffe5b830626728ce..213e04f5715d8c24d30366a37dd340b88f70bea3 100644
--- a/test/box/xlog.test.py
+++ b/test/box/xlog.test.py
@@ -107,22 +107,47 @@ server.start()
 if not os.access(wal_inprogress, os.F_OK) and not os.access(wal, os.F_OK):
    print "00000000000000000006.xlog.inprogress has been successfully deleted"
 
-print """
-A test case for https://bugs.launchpad.net/tarantool/+bug/1052018
-panic_on_wal_error doesn't work for duplicate key errors
-"""
-server.stop()
-server.cfgfile_source = "box/panic_on_wal_error.cfg"
-server.deploy()
-server.stop()
-shutil.copy(abspath("box/dup_key1.xlog"),
-            os.path.join(server.vardir, "00000000000000000002.xlog"))
-shutil.copy(abspath("box/dup_key2.xlog"),
-           os.path.join(server.vardir, "00000000000000000004.xlog"))
-server.start()
-admin("box.space['test']:get{1}")
-admin("box.space['test']:get{2}")
-admin("box.space['test']:len()")
+#print """
+#A test case for https://bugs.launchpad.net/tarantool/+bug/1052018
+#panic_on_wal_error doesn't work for duplicate key errors
+#"""
+
+# Step-by-step instruction for log files preparation
+# needed for bugtest #1052018.
+#
+#
+# 1.  box.schema.create_space('test')
+# 2.  box.space['test']:create_index('primary')
+# 3.  box.space['test']:insert{1, 'first tuple}
+# 4.  box.space['test']:insert{2, 'second tuple}
+# 5.  stop tarantool
+# 6.  copy xlog to dup_key1.xlog
+# 7.  remove xlog
+# 8.  start tarantool
+# 9.  box.schema.create_space('test')
+# 10. box.space['test']:create_index('primary')
+# 11. box.space['test']:insert{1, 'first tuple}
+# 12. box.space['test']:delete{1}
+# 13. stop tarantool
+# 14. start tarantool
+# 15. box.space['test']:insert{1, 'third tuple'}
+# 16. box.space['test']:insert{2, 'fourth tuple'}
+# 17. stop tarantool
+# 18. copy xlog to dup_key2.xlog
+#
+
+#server.stop()
+#server.cfgfile_source = "box/panic_on_wal_error.cfg"
+#server.deploy()
+#server.stop()
+#shutil.copy(abspath("box/dup_key1.xlog"),
+            #os.path.join(server.vardir, "00000000000000000002.xlog"))
+#shutil.copy(abspath("box/dup_key2.xlog"),
+           #os.path.join(server.vardir, "00000000000000000004.xlog"))
+#server.start()
+#admin("box.space['test']:get{1}")
+#admin("box.space['test']:get{2}")
+#admin("box.space['test']:len()")
 
 # cleanup
 server.stop()