diff --git a/lgc.c b/lgc.c
index d1f5590..700390d 100644
--- a/lgc.c
+++ b/lgc.c
@@ -1055,7 +1055,6 @@
   l_obj threshold = applygcparam(g, PAUSE, g->marked);
   l_obj debt = threshold - gettotalobjs(g);
   if (debt < 0) debt = 0;
-//printf("pause: %ld  %ld\n", debt, g->marked);
   luaE_setdebt(g, debt);
 }
 
@@ -1261,7 +1260,6 @@
 static int checkminormajor (global_State *g, l_obj addedold1) {
   l_obj step = applygcparam(g, MINORMUL, g->GCmajorminor);
   l_obj limit = applygcparam(g, MINORMAJOR, g->GCmajorminor);
-//printf("-> (%ld) major? marked: %ld  limit: %ld  step: %ld  addedold1: %ld)\n", gettotalobjs(g), g->marked, limit, step, addedold1);
   return (addedold1 >= (step >> 1) || g->marked >= limit);
 }
 
@@ -1410,7 +1408,6 @@
     l_obj addedobjs = numobjs - g->GCmajorminor;
     l_obj limit = applygcparam(g, MAJORMINOR, addedobjs);
     l_obj tobecollected = numobjs - g->marked;
-//printf("(%ld) -> minor? tobecollected: %ld  limit: %ld\n", numobjs, tobecollected, limit);
     if (tobecollected > limit) {
       atomic2gen(L, g);  /* return to generational mode */
       setminordebt(g);
diff --git a/manual/manual.of b/manual/manual.of
index 3181549..7df32fc 100644
--- a/manual/manual.of
+++ b/manual/manual.of
@@ -3672,12 +3672,13 @@
 been collected;
 therefore, Lua can avoid copying to internal structures
 some parts of the chunk.
-(In general, a fixed buffer would keep the chunk
-as its contents until the end of the program,
+(In general, a fixed buffer would keep its contents
+until the end of the program,
 for instance with the chunk in ROM.)
 Moreover, for a fixed buffer,
 the reader function should return the entire chunk in the first read.
-(As an example, @Lid{luaL_loadbufferx} does that.)
+(As an example, @Lid{luaL_loadbufferx} does that,
+which means that you can use it to load fixed buffers.)
 
 The function @Lid{lua_load} fully preserves the Lua stack
 through the calls to the reader function,
@@ -3936,7 +3937,7 @@
 
 Creates an @emphx{external string},
 that is, a string that uses memory not managed by Lua.
-The pointer @id{s} points to the exernal buffer
+The pointer @id{s} points to the external buffer
 holding the string content,
 and @id{len} is the length of the string.
 The string should have a zero at its end,
@@ -9362,6 +9363,11 @@
 }
 
 @item{
+The function @id{lua_setcstacklimit} is deprecated.
+Calls to it can simply be removed.
+}
+
+@item{
 The function @Lid{lua_dump} changed the way it keeps the stack
 through the calls to the writer function.
 (That was not specified in previous versions.)
