diff --git a/src/array.c b/src/array.c
index fbf2c8baa96fba8286cc7afcf5c080591f7d1e7f..2affea7e85358ef846882a4c2590748c8277340f 100644
--- a/src/array.c
+++ b/src/array.c
@@ -1012,7 +1012,8 @@ static int obj_or_func_cmp (const struct svalue *a, const struct svalue *b)
     return a->subtype - b->subtype;
 
   /* Destructed objects are considered equal to each other, and
-   * (arbitrarily chosen) greater than others. */
+   * greater than others. That makes them sort close to real zeroes,
+   * which are sorted after objects without compare functions. */
   if (!a->u.object->prog)
     return !b->u.object->prog ? 0 : 1;
   else if (!b->u.object->prog)