diff --git a/src/interpret.c b/src/interpret.c
index 3e41b2390806b48a682ff1587b782e3a9719036e..6b1669d11f19005aa1f238fdbcaba22612cabaa9 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: interpret.c,v 1.124 1999/05/08 16:42:48 grubba Exp $");
+RCSID("$Id: interpret.c,v 1.125 1999/05/13 07:24:51 hubbe Exp $");
 #include "interpret.h"
 #include "object.h"
 #include "program.h"
@@ -295,6 +295,9 @@ void assign_lvalue(struct svalue *lval,struct svalue *from)
       if(from->u.array->size < (lval[1].u.array->size>>1))
 	error("Not enough values for multiple assign.\n");
 
+      if(from->u.array->size > (lval[1].u.array->size>>1))
+	error("Too many values for multiple assign.\n");
+
       for(e=0;e<from->u.array->size;e++)
 	assign_lvalue(lval[1].u.array->item+(e<<1),from->u.array->item+e);
     }
diff --git a/src/modules/system/nt.c b/src/modules/system/nt.c
index a96c4eb5c69378c3112ef56ea875ba88620d761c..d47657f506b87b457f25e8a7cb00dca1459f3425 100644
--- a/src/modules/system/nt.c
+++ b/src/modules/system/nt.c
@@ -1,5 +1,5 @@
 /*
- * $Id: nt.c,v 1.9 1999/03/23 20:25:28 marcus Exp $
+ * $Id: nt.c,v 1.10 1999/05/13 07:23:12 hubbe Exp $
  *
  * NT system calls for Pike
  *
@@ -19,6 +19,7 @@
 #include "module_support.h"
 #include "array.h"
 #include "constants.h"
+#include "builtin_functions.h"
 
 #include <winsock.h>
 #include <windows.h>