diff --git a/lib/master.pike.in b/lib/master.pike.in
index ef1971c4afbaef9ab4a3f42fbf38ef8a0d60f708..a78be8f5474afe0eb03d530e5817f9b5d050d698 100644
--- a/lib/master.pike.in
+++ b/lib/master.pike.in
@@ -3926,6 +3926,9 @@ class Describer
       string t = sprintf("%q", 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++;