diff --git a/src/language.yacc b/src/language.yacc
index 9ec5ed70a9a7b9e566b36995e13c71ed0adde815..2e5790075892b9651c03d95b1bbdf6ff6c2de1c7 100644
--- a/src/language.yacc
+++ b/src/language.yacc
@@ -171,7 +171,7 @@
 /* This is the grammar definition of Pike. */
 
 #include "global.h"
-RCSID("$Id: language.yacc,v 1.82 1998/04/17 17:13:37 hubbe Exp $");
+RCSID("$Id: language.yacc,v 1.83 1998/04/18 07:21:03 hubbe Exp $");
 #ifdef HAVE_MEMORY_H
 #include <memory.h>
 #endif
@@ -741,7 +741,7 @@ identifier_type: idents
        resolv_program($1);
        if((p=program_from_svalue(sp-1)))
        {
-         push_type_int(sp[-1].u.program->id);
+         push_type_int(p->id);
        }else{
          push_type_int(0);
        }
diff --git a/src/program.c b/src/program.c
index 25bd20259283c45b69d4d7dd5809c45a6cb30745..2543cc5ea914a1e644bb45c2613398fce4f3154c 100644
--- a/src/program.c
+++ b/src/program.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: program.c,v 1.83 1998/04/16 21:32:03 hubbe Exp $");
+RCSID("$Id: program.c,v 1.84 1998/04/18 07:21:04 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -757,10 +757,13 @@ void check_program(struct program *p)
     if(p->inherits[e].storage_offset < 0)
       fatal("Inherit->storage_offset is wrong.\n");
 
+#if 0
+    /* This test doesn't really work... */
     if(p->inherits[e].storage_offset & (ALIGN_BOUND-1))
     {
-      fatal("inherit[%d].storage_offset is not properly aligned.\n",e);
+      fatal("inherit[%d].storage_offset is not properly aligned (%d).\n",e,p->inherits[e].storage_offset);
     }
+#endif
   }
 }
 #endif