diff --git a/src/program.c b/src/program.c
index 17123e52395f4b8fc29e201b7e566ca9a643bf46..a6364855391c55266517715642cb13870e8dd02b 100644
--- a/src/program.c
+++ b/src/program.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: program.c,v 1.154 1999/09/28 21:57:47 hubbe Exp $");
+RCSID("$Id: program.c,v 1.155 1999/09/28 22:34:47 grubba Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -892,24 +892,17 @@ void check_program(struct program *p)
       if(p->inherits[e-1].storage_offset > 
 	 p->inherits[e].storage_offset)
 	fatal("Overlapping inherits! (1)\n");
-
+	
       if(p->inherits[e-1].prog &&
 	 p->inherits[e-1].inherit_level >= p->inherits[e].inherit_level && 
 	 ( p->inherits[e-1].storage_offset +
 	   STORAGE_NEEDED(p->inherits[e-1].prog)) >
 	 p->inherits[e].storage_offset)
 	fatal("Overlapping inherits! (3)\n");
-    } else {
-      struct inherit *last_inh = p->inherits + p->num_inherits - 1;
-
-      if(last_inh->prog &&
-	 (last_inh->storage_offset +
-	  STORAGE_NEEDED(last_inh->prog) >
-	  p->storage_needed))
-	fatal("Overflowing inherits! (2)\n");
     }
   }
 
+
   if(p->flags & PROGRAM_FINISHED)
   for(e=0;e<p->num_identifiers;e++)
   {
@@ -1112,8 +1105,14 @@ SIZE_T low_add_storage(SIZE_T size, SIZE_T alignment, int modulo_orig)
 
   offset=DO_ALIGN(new_program->storage_needed-modulo,alignment)+modulo;
 
-  if(!new_program->storage_needed)
+  if(!new_program->storage_needed) {
+    /* FIXME: Shouldn't new_program->storage_needed be set here?
+     * Otherwise the debug code below ought to be trigged.
+     * But since it isn't, I guess this is dead code?
+     *	/grubba 1999-09-28
+     */
     new_program->inherits[0].storage_offset=offset;
+  }
 
   if(new_program->alignment_needed<alignment)
     new_program->alignment_needed=alignment;
@@ -1357,7 +1356,6 @@ void low_inherit(struct program *p,
 				 p->alignment_needed,
 				 storage_offset);
 
-
   /* Without this, the inherit becomes skewed */
   storage_offset-=p->inherits[0].storage_offset;