diff --git a/src/operators.c b/src/operators.c
index 5125e87ca16b41198149296fe9818069c4740655..d893c6016f5c962461105b187264e4ec2db81db4 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -6,7 +6,7 @@
 /**/
 #include "global.h"
 #include <math.h>
-RCSID("$Id: operators.c,v 1.109 2000/10/14 22:17:58 grubba Exp $");
+RCSID("$Id: operators.c,v 1.110 2000/10/15 12:24:14 grubba Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "multiset.h"
@@ -1661,6 +1661,7 @@ PMOD_EXPORT void o_multiply(void)
 	ret = allocate_array(asize);
 	pos = ret->item;
 	if (asize >= delta) {
+	  ret->type_field = src->type_field;
 	  assign_svalues_no_free(pos,
 				 src->item,
 				 delta,
@@ -1681,6 +1682,7 @@ PMOD_EXPORT void o_multiply(void)
 				 src->item,
 				 asize,
 				 src->type_field);
+	  array_fix_type_field(ret);
 	}
 	pop_n_elems(2);
 	push_array(ret);