diff --git a/src/mapping.c b/src/mapping.c
index 5f566a0cc8e6be3ef444452412bbf60b07097d52..1325d2e58fec2c0fef4723edd7ac8e87cb21d567 100644
--- a/src/mapping.c
+++ b/src/mapping.c
@@ -348,6 +348,8 @@ void f_aggregate_mapping(INT32 args)
     ITEM(val)[e]=*(s++);
   }
   sp-=args;
+  ind->type_field=BIT_MIXED;
+  val->type_field=BIT_MIXED;
   m=allocate_mapping(ind,val);
   order_mapping(m);
   sp->u.mapping=m;
diff --git a/src/modules/gdbmmod/gdbmmod.c b/src/modules/gdbmmod/gdbmmod.c
index 0510cb8d3a86f3285107448f309a876ece5c962e..908e7119e93f4378b386e824598542a2b8da7f4b 100644
--- a/src/modules/gdbmmod/gdbmmod.c
+++ b/src/modules/gdbmmod/gdbmmod.c
@@ -205,7 +205,7 @@ static void gdbmmod_store(INT32 args)
     error("GDBM database not open.\n");
 
   STRING_TO_DATUM(key, sp[-args].u.string);
-  STRING_TO_DATUM(data, sp[-args].u.string);
+  STRING_TO_DATUM(data, sp[1-args].u.string);
 
   ret=gdbm_store(THIS->dbf, key, data, GDBM_REPLACE);
   if(ret == -1)