_ftol should return a 64-bit int (spotted by Jon Griffiths).

diff --git a/dlls/crtdll/crtdll.spec b/dlls/crtdll/crtdll.spec
index 2394604..ba953f1 100644
--- a/dlls/crtdll/crtdll.spec
+++ b/dlls/crtdll/crtdll.spec
@@ -112,7 +112,7 @@
 @ cdecl _fsopen(str str long) msvcrt._fsopen
 @ cdecl _fstat(long ptr) CRTDLL__fstat
 @ cdecl _ftime(ptr) msvcrt._ftime
-@ cdecl _ftol() msvcrt._ftol
+@ cdecl -ret64 _ftol() msvcrt._ftol
 @ cdecl _fullpath(ptr str long) msvcrt._fullpath
 @ cdecl _futime(long ptr) msvcrt._futime
 @ cdecl _gcvt( double long str) msvcrt._gcvt
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
index ead694f..4948745 100644
--- a/dlls/msvcrt/msvcrt.spec
+++ b/dlls/msvcrt/msvcrt.spec
@@ -243,7 +243,7 @@
 @ cdecl _fstat(long ptr) MSVCRT__fstat
 @ cdecl _fstati64(long ptr)
 @ cdecl _ftime(ptr)
-@ cdecl _ftol() ntdll._ftol
+@ cdecl -ret64 _ftol() ntdll._ftol
 @ cdecl _fullpath(ptr str long)
 @ cdecl _futime(long ptr)
 @ cdecl _gcvt(double long str)
diff --git a/dlls/msvcrtd/msvcrtd.spec b/dlls/msvcrtd/msvcrtd.spec
index e8a87dd..9b30f64 100644
--- a/dlls/msvcrtd/msvcrtd.spec
+++ b/dlls/msvcrtd/msvcrtd.spec
@@ -271,7 +271,7 @@
 @ cdecl _fstat(long ptr) msvcrt._fstat
 @ cdecl _fstati64(long ptr) msvcrt._fstati64
 @ cdecl _ftime(ptr) msvcrt._ftime
-@ cdecl _ftol() ntdll._ftol
+@ cdecl -ret64 _ftol() ntdll._ftol
 @ cdecl _fullpath(ptr str long) msvcrt._fullpath
 @ cdecl _futime(long ptr) msvcrt._futime
 @ cdecl _gcvt( double long str) msvcrt._gcvt
diff --git a/dlls/ntdll/misc.c b/dlls/ntdll/misc.c
index ff46d99..13fb452 100644
--- a/dlls/ntdll/misc.c
+++ b/dlls/ntdll/misc.c
@@ -54,13 +54,13 @@
  *	[GNUC && i386]
  */
 #if defined(__GNUC__) && defined(__i386__)
-LONG __cdecl NTDLL__ftol(void)
+LONGLONG __cdecl NTDLL__ftol(void)
 {
 	/* don't just do DO_FPU("fistp",retval), because the rounding
 	 * mode must also be set to "round towards zero"... */
 	double fl;
 	POP_FPU(fl);
-	return (LONG)fl;
+	return (LONGLONG)fl;
 }
 #endif /* defined(__GNUC__) && defined(__i386__) */
 
@@ -73,10 +73,10 @@
  *	[!GNUC && i386]
  */
 #if !defined(__GNUC__) && defined(__i386__)
-LONG __cdecl NTDLL__ftol(double fl)
+LONGLONG __cdecl NTDLL__ftol(double fl)
 {
 	FIXME("should be register function\n");
-	return (LONG)fl;
+	return (LONGLONG)fl;
 }
 #endif /* !defined(__GNUC__) && defined(__i386__) */
 
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 7ac6797..3be2fef 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -908,7 +908,7 @@
 @ stdcall -ret64 _aullrem(long long long long)
 @ stdcall -register -i386 _chkstk() NTDLL_chkstk
 @ stub _fltused
-@ cdecl _ftol() NTDLL__ftol
+@ cdecl -ret64 _ftol() NTDLL__ftol
 @ cdecl _i64toa(long long ptr long)
 @ cdecl _i64tow(long long ptr long)
 @ cdecl _itoa(long ptr long)