diff --git a/src/array.c b/src/array.c
index 3bda19735a273dbd25dce0d860053ae2a51772df..3bbc0ab5e18e1703b972ed720fb8e339c055859f 100644
--- a/src/array.c
+++ b/src/array.c
@@ -22,7 +22,7 @@
 #include "security.h"
 #include "stuff.h"
 
-RCSID("$Id: array.c,v 1.54 1999/09/16 23:56:08 hubbe Exp $");
+RCSID("$Id: array.c,v 1.55 1999/09/24 13:03:01 noring Exp $");
 
 struct array empty_array=
 {
@@ -1512,7 +1512,9 @@ void describe_array(struct array *a,struct processing *p,int indent)
     }
   }
   
-  sprintf(buf,"({ /* %ld elements */\n",(long)a->size);
+  sprintf(buf, a->size == 1 ? "({ /* %ld element */\n" :
+	                      "({ /* %ld elements */\n",
+	  (long)a->size);
   my_strcat(buf);
   describe_array_low(a,&doing,indent);
   my_putchar('\n');
diff --git a/src/mapping.c b/src/mapping.c
index 0b2b7cad65fb7bc27fd7d7d909eb0dd7d1724d8c..7d7a1b35ae8bd894fa6a7775a18bbab00606e18b 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: mapping.c,v 1.40 1999/09/06 10:48:07 grubba Exp $");
+RCSID("$Id: mapping.c,v 1.41 1999/09/24 13:03:02 noring Exp $");
 #include "main.h"
 #include "object.h"
 #include "mapping.h"
@@ -764,7 +764,9 @@ void describe_mapping(struct mapping *m,struct processing *p,int indent)
     }
   }
   
-  sprintf(buf,"([ /* %ld elements */\n",(long) m->size);
+  sprintf(buf, m->size == 1 ? "([ /* %ld element */\n" :
+	                      "([ /* %ld elements */\n",
+	  (long)m->size);
   my_strcat(buf);
 
   q=0;
diff --git a/src/multiset.c b/src/multiset.c
index 57b32395df6df15330ab4abc00bf507f72a99464..e3feadfa77f2ef1169cc19c0a1dd3430f4ab797c 100644
--- a/src/multiset.c
+++ b/src/multiset.c
@@ -16,7 +16,7 @@
 #include "gc.h"
 #include "security.h"
 
-RCSID("$Id: multiset.c,v 1.14 1999/04/13 20:10:05 hubbe Exp $");
+RCSID("$Id: multiset.c,v 1.15 1999/09/24 13:03:03 noring Exp $");
 
 struct multiset *first_multiset;
 
@@ -209,7 +209,9 @@ void describe_multiset(struct multiset *l,struct processing *p,int indent)
     }
   }
   
-  sprintf(buf,"(< /* %ld elements */\n",(long)l->ind->size);
+  sprintf(buf, l->ind->size == 1 ? "(< /* %ld element */\n" :
+	                           "(< /* %ld elements */\n",
+	  (long)l->ind->size);
   my_strcat(buf);
   describe_array_low(l->ind,&doing,indent);
   my_putchar('\n');