diff --git a/src/builtin_functions.c b/src/builtin_functions.c
index 49e348a9f5cabf88cf6e3165fe8554422e512204..18129a4c0f465d47029c5a358efc848b95255a97 100644
--- a/src/builtin_functions.c
+++ b/src/builtin_functions.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: builtin_functions.c,v 1.58 1997/11/17 03:23:14 hubbe Exp $");
+RCSID("$Id: builtin_functions.c,v 1.59 1998/01/29 21:13:47 grubba Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "pike_macros.h"
@@ -109,14 +109,15 @@ void f_copy_value(INT32 args)
 
 void f_ctime(INT32 args)
 {
-  INT32 i;
+  time_t i;
+
   if(!args)
     error("Too few arguments to ctime()\n");
   if(sp[-args].type != T_INT)
     error("Bad argument 1 to ctime()\n");
-  i=sp[-args].u.integer;
+  i=(time_t)sp[-args].u.integer;
   pop_n_elems(args);
-  push_string(make_shared_string(ctime((time_t *)&i)));
+  push_string(make_shared_string(ctime(&i)));
 }
 
 void f_lower_case(INT32 args)