diff --git a/src/array.c b/src/array.c
index 413af46262b7c4d1404e753ca020b4ab90399499..7f16bf4b922194aa085f16f8c09e9f720288714d 100644
--- a/src/array.c
+++ b/src/array.c
@@ -23,7 +23,7 @@
 #include "stuff.h"
 #include "bignum.h"
 
-RCSID("$Id: array.c,v 1.58 1999/11/23 10:38:15 mast Exp $");
+RCSID("$Id: array.c,v 1.59 1999/12/10 22:38:26 grubba Exp $");
 
 struct array empty_array=
 {
@@ -191,6 +191,7 @@ void simple_array_index_no_free(struct svalue *s,
       f_column(2);
       s[0]=sp[-1];
       sp--;
+      dmalloc_touch_svalue(sp);
       break;
     }
 	
@@ -1531,6 +1532,7 @@ struct array *aggregate_array(INT32 args)
   MEMCPY((char *)ITEM(a),(char *)(sp-args),args*sizeof(struct svalue));
   a->type_field=BIT_MIXED;
   sp-=args;
+  DO_IF_DMALLOC(while(args--) dmalloc_touch_svalue(sp + args));
   return a;
 }
 
diff --git a/src/security.c b/src/security.c
index 70327889547634a25ac12784342af32e6d926930..00a64eaf875b75fd226c5a5cd2369f0bd9c28b5a 100644
--- a/src/security.c
+++ b/src/security.c
@@ -125,6 +125,7 @@ static void f_call_with_creds(INT32 args)
   free_svalue(sp-2);
   sp[-2]=sp[-1];
   sp--;
+  dmalloc_touch_svalue(sp);
 }
 
 /*: <pikedoc type=txt>