diff --git a/lauxlib.c b/lauxlib.c
index 097c3cf..ac68bd3 100644
--- a/lauxlib.c
+++ b/lauxlib.c
@@ -1013,10 +1013,10 @@
   }
   else {  /* cannot fail when shrinking a block */
     void *newptr = realloc(ptr, nsize);
-   if (newptr == NULL && ptr != NULL && nsize <= osize)
-     return ptr;  /* keep the original block */
-   else  /* no fail or not shrinking */
-    return newptr;  /* use the new block */
+    if (newptr == NULL && ptr != NULL && nsize <= osize)
+      return ptr;  /* keep the original block */
+    else  /* no fail or not shrinking */
+     return newptr;  /* use the new block */
   }
 }
 
diff --git a/lundump.c b/lundump.c
index b75e10a..edf9eb8 100644
--- a/lundump.c
+++ b/lundump.c
@@ -86,6 +86,7 @@
 
 
 static TString *LoadString (LoadState *S, Proto *p) {
+  lua_State *L = S->L;
   size_t size = LoadByte(S);
   TString *ts;
   if (size == 0xFF)
@@ -95,13 +96,16 @@
   else if (--size <= LUAI_MAXSHORTLEN) {  /* short string? */
     char buff[LUAI_MAXSHORTLEN];
     LoadVector(S, buff, size);
-    ts = luaS_newlstr(S->L, buff, size);
+    ts = luaS_newlstr(L, buff, size);
   }
   else {  /* long string */
-    ts = luaS_createlngstrobj(S->L, size);
+    ts = luaS_createlngstrobj(L, size);
+    setsvalue2s(L, L->top, ts);  /* anchor it ('loadVector' can GC) */
+    luaD_inctop(L);
     LoadVector(S, getstr(ts), size);  /* load directly in final place */
+    L->top--;  /* pop string */
   }
-  luaC_objbarrier(S->L, p, ts);
+  luaC_objbarrier(L, p, ts);
   return ts;
 }
 
