diff --git a/src/program.c b/src/program.c
index ef1c15be0585a40b48cd5581fbc0a77ae78618a9..9ad51d007fa4eff06b4894107f89b18b76dd73b3 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.68 1998/04/06 04:31:32 hubbe Exp $");
+RCSID("$Id: program.c,v 1.69 1998/04/06 10:02:52 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -734,6 +734,14 @@ if((char *)(p->X) < (char *)p || (char *)(p->X)> ((char *)p)+size) fatal("Progra
 
     if(p->identifiers[e].run_time_type!=T_MIXED)
       check_type(p->identifiers[e].run_time_type);
+
+    if(IDENTIFIER_IS_VARIABLE(p->identifiers[e].identifier_flags))
+    {
+      if(p->identifiers[e].offset & (sizeof(char *)-1))
+      {
+	fatal("Variable offset is not properly aligned (%s).\n",p->identifers[e].name->str);
+      }
+    }
   }
 
   for(e=0;e<(int)p->num_identifier_references;e++)