diff --git a/src/script/lua_api/l_mapgen.cpp b/src/script/lua_api/l_mapgen.cpp
index 3cb52eab492e292460268f885d77404dd547c37d..d94f902c426684c9124fceaae5f1e5d467d962d7 100644
--- a/src/script/lua_api/l_mapgen.cpp
+++ b/src/script/lua_api/l_mapgen.cpp
@@ -291,7 +291,7 @@ bool read_schematic_def(lua_State *L, int index,
 
 	//// Get Y-slice probability values (if present)
 	schem->slice_probs = new u8[size.Y];
-	for (i = 0; i != size.Y; i++)
+	for (i = 0; i != (u32) size.Y; i++)
 		schem->slice_probs[i] = MTSCHEM_PROB_ALWAYS;
 
 	lua_getfield(L, index, "yslice_prob");