Bug: 'string.concat' error message uses wrong format
diff --git a/ltablib.c b/ltablib.c
index d344a47..c7f0e4d 100644
--- a/ltablib.c
+++ b/ltablib.c
@@ -146,7 +146,7 @@
 static void addfield (lua_State *L, luaL_Buffer *b, lua_Integer i) {
   lua_geti(L, 1, i);
   if (!lua_isstring(L, -1))
-    luaL_error(L, "invalid value (%s) at index %d in table for 'concat'",
+    luaL_error(L, "invalid value (%s) at index %I in table for 'concat'",
                   luaL_typename(L, -1), i);
   luaL_addvalue(b);
 }
diff --git a/testes/strings.lua b/testes/strings.lua
index 2fa4a89..61a06a2 100644
--- a/testes/strings.lua
+++ b/testes/strings.lua
@@ -361,6 +361,9 @@
 
 
 checkerror("table expected", table.concat, 3)
+checkerror("at index " .. maxi, table.concat, {}, " ", maxi, maxi)
+-- '%' escapes following minus signal
+checkerror("at index %" .. mini, table.concat, {}, " ", mini, mini)
 assert(table.concat{} == "")
 assert(table.concat({}, 'x') == "")
 assert(table.concat({'\0', '\0\1', '\0\1\2'}, '.\0.') == "\0.\0.\0\1.\0.\0\1\2")