diff --git a/src/array.c b/src/array.c
index ea2ae488ed6746a3ad3f0e77e5f65088ed94ba73..def28759ca2b76baf275991c817bf4ea84cc9758 100644
--- a/src/array.c
+++ b/src/array.c
@@ -20,7 +20,7 @@
 #include "main.h"
 #include "security.h"
 
-RCSID("$Id: array.c,v 1.46 1999/04/12 02:24:10 hubbe Exp $");
+RCSID("$Id: array.c,v 1.47 1999/04/12 05:27:46 hubbe Exp $");
 
 struct array empty_array=
 {
@@ -1767,7 +1767,7 @@ void gc_free_all_unreferenced_arrays(void)
 	  else
 	    a->item[d++]=a->item[e];
 	}
-	a->size=e;
+	a->size=d;
       }else{
 	for(e=0;e<a->size;e++)
 	{
diff --git a/src/signal_handler.c b/src/signal_handler.c
index 3dfb49df27bdc2de7f6206bf6c16f2ae4f5caabc..f9f8547ec7991de9e25fd960d6b9e3b49d7c7350 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.c
@@ -25,7 +25,7 @@
 #include "main.h"
 #include <signal.h>
 
-RCSID("$Id: signal_handler.c,v 1.123 1999/04/12 02:24:17 hubbe Exp $");
+RCSID("$Id: signal_handler.c,v 1.124 1999/04/12 05:27:48 hubbe Exp $");
 
 #ifdef HAVE_PASSWD_H
 # include <passwd.h>
@@ -2572,7 +2572,7 @@ static void f_kill(INT32 args)
 
 #ifdef __NT__
 #define HAVE_KILL
-void f_kill(INT32 args)
+static void f_kill(INT32 args)
 {
   HANDLE proc=INVALID_HANDLE_VALUE;
 
@@ -2765,10 +2765,9 @@ void f_atexit(INT32 args)
     atexit_functions=low_allocate_array(0,1);
   }
 
-  f_aggregate(args);
-  atexit_functions=append_array(atexit_functions,sp-1);
+  atexit_functions=append_array(atexit_functions,sp-args);
   atexit_functions->flags |= ARRAY_WEAK_FLAG | ARRAY_WEAK_SHRINK;
-  pop_stack();
+  pop_n_elems(args);
 }
 
 
diff --git a/src/signal_handler.h b/src/signal_handler.h
index e42f56ec20e3a446bb7deb730e81051dad7c4aaa..6bc75f6fc31d9cc2355d5c0a7a5dd83cf0a3a480 100644
--- a/src/signal_handler.h
+++ b/src/signal_handler.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: signal_handler.h,v 1.7 1999/04/12 02:24:19 hubbe Exp $
+ * $Id: signal_handler.h,v 1.8 1999/04/12 05:27:49 hubbe Exp $
  */
 #ifndef SIGNAL_H
 #define SIGNAL_H
@@ -27,10 +27,10 @@ struct perishables;
 void f_set_priority( INT32 args );
 void f_create_process(INT32 args);
 void f_fork(INT32 args);
-void f_kill(INT32 args);
 void f_atexit(INT32 args);
 void init_signals(void);
 void exit_signals(void);
 /* Prototypes end here */
 
+
 #endif