diff --git a/src/box/box_lua.m b/src/box/box_lua.m
index 80294593a26bcc820382718c04f87287a402a755..2d7ec70466c62a46fa3cced25996d64deeb69be9 100644
--- a/src/box/box_lua.m
+++ b/src/box/box_lua.m
@@ -1010,6 +1010,13 @@ lua_table_to_tuple(struct lua_State *L, int index)
 			field_len = n > UINT32_MAX ? sizeof(uint64_t) : sizeof(uint32_t);
 			break;
 		}
+		case LUA_TBOOLEAN:
+		{
+			bool value = lua_toboolean(L, -1);
+			const char *str = value ? "true" : "false";
+			field_len = strlen(str) + 1;
+			break;
+		}
 		case LUA_TCDATA:
 		{
 			/* Check if we can convert. */
@@ -1054,6 +1061,13 @@ lua_table_to_tuple(struct lua_State *L, int index)
 			}
 			break;
 		}
+		case LUA_TBOOLEAN:
+		{
+			bool value = lua_toboolean(L, -1);
+			const char *str = value ? "true" : "false";
+			pos = pack_lstr(pos, str, strlen(str) + 1);
+			break;
+		}
 		case LUA_TCDATA:
 		{
 			uint64_t n = tarantool_lua_tointeger64(L, -1);
diff --git a/test/box/lua.test b/test/box/lua.test
index 4b4f435bd44ac176ddf01472e71d5aa6103abc78..c10fe13b2b866fd5b9ff6d1c20add5646f8572d3 100644
--- a/test/box/lua.test
+++ b/test/box/lua.test
@@ -616,3 +616,8 @@ exec admin "lua -1LL"
 exec admin "lua -1ULL"
 exec admin "lua tonumber64(-1.0)"
 exec admin "lua 6LL - 7LL"
+print """# A test case for Bug#1131108 'incorrect conversion from boolean lua value to tarantool tuple'
+"""
+exec admin  "lua function bug1075677() local range = {} table.insert(range, 1>0) return range end"
+exec sql "call bug1075677()"
+exec admin "lua bug1075677=nil"