New hacks for include files to get time_t in the most portable way.
Added Turbo C milli functions (courtesy Mark Anacker)
Disable THINK C sleep for 4.0
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index b98e140..738887d 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -33,13 +33,30 @@
 #include <signal.h>
 #include <setjmp.h>
 
-#ifdef __STDC__
-#include <time.h>
-#else /* !__STDC__ */
-typedef unsigned long time_t;
-extern time_t time();
-#endif /* !__STDC__ */
+/* What happens here is not trivial.
+   The BSD_TIME code needs <sys/time.h> (for struct timeval).
+   The rest of the code needs only time_t, except some MS-DOS
+   code which needs clock_t as well.
+   Standard C says that time_t is defined in <time.h>, and
+   does not have <sys/types.h>; THINK C agrees (MS-DOS too?).
+   What's worse, in pure 4.3 BSD, older SunOS versions, and
+   probably everything derived from BSD, you can't #include
+   both <time.h> and <sys/time.h> in the same file, since
+   <sys/time.h> includes <time.h> without any protection,
+   and <time.h> contains a typedef, which can't be parsed twice!
+   So on traditional UNIX systems we include <sys/types.h>
+   and <sys/time.h> and hope this implies <time.h> and time_t,
+   while on other systems, including conforming Standard C
+   systems (where 'unix' can't be defined), we rely on <time.h>.
+   Still one problem: BSD_TIME won't work with strict Standard C...
+*/
 
+#ifdef unix
+#include <sys/types.h>
+#include <sys/time.h> /* Implies <time.h> everywhere, as far as I know */
+#else /* !unix */
+#include <time.h>
+#endif /* !unix */
 
 /* Time methods */
 
@@ -51,7 +68,7 @@
 	time_t secs;
 	if (!getnoarg(args))
 		return NULL;
-	secs = time((time_t *)NULL);
+	time(&secs);
 #ifdef THINK_C
 #ifndef THINK_C_3_0
 /* Difference in origin between Mac and Unix clocks: */
@@ -109,6 +126,10 @@
 #define DO_MILLI
 #endif /* BSD_TIME */
 
+#ifdef TURBO_C
+#define DO_MILLI
+#endif
+
 #ifdef DO_MILLI
 
 static object *
@@ -172,6 +193,7 @@
 
 #define MacTicks	(* (long *)0x16A)
 
+#ifdef THINK_C_3_0
 sleep(msecs)
 	int msecs;
 {
@@ -183,6 +205,7 @@
 			sleep_catcher(SIGINT);
 	}
 }
+#endif
 
 millisleep(msecs)
 	long msecs;
@@ -207,9 +230,6 @@
 
 #ifdef BSD_TIME
 
-#include <sys/types.h>
-#include <sys/time.h>
-
 long
 millitimer()
 {
@@ -232,3 +252,27 @@
 
 #endif /* BSD_TIME */
 
+
+#ifdef TURBO_C /* Maybe also for MS-DOS? */
+
+#ifndef CLOCKS_PER_SEC
+#define CLOCKS_PER_SEC 55	/* 54.945 msec per tick (18.2 HZ clock) */
+#endif
+
+static
+millisleep(msecs)
+	long msecs;
+{
+	delay(msecs);
+}
+
+static long
+millitimer()
+{
+	clock_t ticks;
+
+	ticks = clock();	/* ticks since program start */
+	return ticks * CLOCKS_PER_SEC;
+}
+
+#endif /* TURBO_C */