#include <linux/types.h>
 #include <linux/signal.h>
 
-/* kernel/process.c */
-asmlinkage int sys_clone(unsigned long, unsigned long,
-                        unsigned long, unsigned long,
-                        struct pt_regs *);
-
 /* mm/cache.c */
 asmlinkage int sys_cacheflush(int, void __user *, size_t);
 
 
 }
 
 asmlinkage int sys_clone(unsigned long clone_flags, unsigned long newsp,
-                        unsigned long parent_tidptr,
-                        unsigned long child_tidptr, struct pt_regs *regs)
+               void __user *parent_tidptr, void __user *child_tidptr,
+               struct pt_regs *regs)
 {
        if (!newsp)
                newsp = regs->sp;
-       return do_fork(clone_flags, newsp, regs, 0,
-                      (int __user *)parent_tidptr,
-                      (int __user *)child_tidptr);
+       return do_fork(clone_flags, newsp, regs, 0, parent_tidptr,
+                       child_tidptr);
 }
 
 asmlinkage int sys_vfork(struct pt_regs *regs)