diff --git a/.gitattributes b/.gitattributes
index 1236c4027c5adba3ccbd74cb42f668c20e57bf66..2a7ecb273ba947b626f82284a7bc77b60756c20e 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -60,7 +60,6 @@ testfont binary
 /lib/7.4/modules/SSL.pmod/constants.pike foreign_ident
 /lib/7.4/modules/__default.pmod foreign_ident
 /lib/include/profiling.h foreign_ident
-/lib/master.pike.in foreign_ident
 /lib/modules/ADT.pmod/History.pike foreign_ident
 /lib/modules/ADT.pmod/Queue.pike foreign_ident
 /lib/modules/ADT.pmod/Relation.pmod/Binary.pike foreign_ident
diff --git a/lib/master.pike.in b/lib/master.pike.in
index cc5f7cd2b4d1b0d9b131a3754f202279e367d0b3..3c98a78794917fb44b9ae4f2af2d77917e8a9aca 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -6,7 +6,7 @@
 // Pike is distributed under GPL, LGPL and MPL. See the file COPYING
 // for more information.
 //
-// $Id: master.pike.in,v 1.331 2004/01/12 23:37:07 nilsson Exp $
+// $Id$
 
 #pike __REAL_VERSION__
 
@@ -2818,6 +2818,9 @@ class Describer
       string t = sprintf("%O", m);
       if (sizeof(t) < (maxlen + 2))
 	return t;
+      // NB: The code further below requires maxlen <= sizeof(m).
+      //     We adjust maxlen so that this holds. Cf [PIKE-224].
+      maxlen = sizeof(m) - (sizeof(t) - maxlen);
       t = 0;
     }
     clipped++;