diff --git a/src/program.c b/src/program.c
index 080946eb2170a60c69f56af4940e3f84eb220816..5cdad7da8a489a39a68fb80512e519c765d22be4 100644
--- a/src/program.c
+++ b/src/program.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: program.c,v 1.201 2000/02/07 04:46:43 per Exp $");
+RCSID("$Id: program.c,v 1.202 2000/02/10 17:58:08 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -870,13 +870,15 @@ void dump_program_desc(struct program *p)
   int e,d,q;
 /*  fprintf(stderr,"Program '%s':\n",p->name->str); */
 
-
   fprintf(stderr,"All inherits:\n");
   for(e=0;e<p->num_inherits;e++)
   {
     for(d=0;d<p->inherits[e].inherit_level;d++) fprintf(stderr,"  ");
     fprintf(stderr,"%3d:\n",e);
 
+    for(d=0;d<p->inherits[e].inherit_level;d++) fprintf(stderr,"  ");
+    fprintf(stderr,"inherited program: %d\n",p->inherits[e].prog->id);
+
     if(p->inherits[e].name)
     {
       for(d=0;d<p->inherits[e].inherit_level;d++) fprintf(stderr,"  ");
@@ -3544,7 +3546,17 @@ int low_get_storage(struct program *o, struct program *p)
 
 char *get_storage(struct object *o, struct program *p)
 {
-  int offset= low_get_storage(o->prog, p);
+  int offset;
+
+#ifdef _REENTRANT
+#ifndef __NT__
+  if(d_flag)
+    if(!mt_trylock(& interpreter_lock))
+      fatal("get_storage running unlocked!\n");
+#endif
+#endif
+
+  offset= low_get_storage(o->prog, p);
   if(offset == -1) return 0;
   return o->storage + offset;
 }