Added doc strings.
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index 7b411ae..43b247f 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -150,6 +150,12 @@
 	return PyFloat_FromDouble(secs);
 }
 
+static char time_doc[] =
+"time() -> floating point number\n\
+\n\
+Return the current time in seconds since the Epoch.\n\
+Fractions of a second may be present if the system clock provides them.";
+
 #ifdef HAVE_CLOCK
 
 #ifndef CLOCKS_PER_SEC
@@ -205,9 +211,18 @@
 	return PyFloat_FromDouble((double)diff.LowPart + 
 		              ((double)rem.LowPart / (double)divisor.LowPart));
 }
+
 #define HAVE_CLOCK /* So it gets included in the methods */
 #endif /* MS_WIN32 */
 
+#ifdef HAVE_CLOCK
+static char clock_doc[] =
+"clock() -> floating point number\n\
+\n\
+Return the CPU time or real time since the start of the process or since\n\
+the first call to clock().  This has as much precision as the system records.";
+#endif
+
 static PyObject *
 time_sleep(self, args)
 	PyObject *self;
@@ -222,6 +237,12 @@
 	return Py_None;
 }
 
+static char sleep_doc[] =
+"sleep(seconds)\n\
+\n\
+Delay execution for a given number of seconds.  The argument may be\n\
+a floating point number for subsecond precision.";
+
 static PyObject *
 tmtotuple(p)
 	struct tm *p;
@@ -267,6 +288,11 @@
 	return time_convert((time_t)when, gmtime);
 }
 
+static char gmtime_doc[] =
+"gmtime(seconds) -> tuple\n\
+\n\
+Convert seconds since the Epoch to a time tuple expressing UTC (a.k.a. GMT).";
+
 static PyObject *
 time_localtime(self, args)
 	PyObject *self;
@@ -278,6 +304,10 @@
 	return time_convert((time_t)when, localtime);
 }
 
+static char localtime_doc[] =
+"localtime(seconds) -> tuple\n\
+Convert seconds since the Epoch to a time tuple expressing local time.";
+
 static int
 gettmarg(args, p)
 	PyObject *args;
@@ -352,6 +382,12 @@
 			"bad strftime format or result too big");
 	return NULL;
 }
+
+static char strftime_doc[] =
+"strftime(format, tuple) -> string\n\
+\n\
+Convert a time tuple to a string according to a format specification.\n\
+See the library reference manual for formatting codes.";
 #endif /* HAVE_STRFTIME */
 
 #ifdef HAVE_STRPTIME
@@ -383,6 +419,11 @@
 	}
 	return tmtotuple(&tm);
 }
+
+static char strptime_doc[] =
+"strptime(format, string) -> tuple\n\
+Parse a string to a time tuple according to a format specification.\n\
+See the library reference manual for formatting codes (same as strftime()).";
 #endif /* HAVE_STRPTIME */
 
 static PyObject *
@@ -400,6 +441,11 @@
 	return PyString_FromString(p);
 }
 
+static char asctime_doc[] =
+"asctime(tuple) -> string\n\
+\n\
+Convert a time tuple to a string, e.g. 'Sat Jun 06 16:26:11 1998'.";
+
 static PyObject *
 time_ctime(self, args)
 	PyObject *self;
@@ -421,6 +467,12 @@
 	return PyString_FromString(p);
 }
 
+static char ctime_doc[] =
+"ctime(seconds) -> string\n\
+\n\
+Convert a time in seconds since the Epoch to a string in local time.\n\
+This is equivalent to asctime(localtime(seconds)).";
+
 #ifdef HAVE_MKTIME
 static PyObject *
 time_mktime(self, args)
@@ -441,26 +493,31 @@
 	}
 	return PyFloat_FromDouble((double)tt);
 }
+
+static char mktime_doc[] =
+"mktime(tuple) -> floating point number\n\
+\n\
+Convert a time tuple in local time to seconds since the Epoch.";
 #endif /* HAVE_MKTIME */
 
 static PyMethodDef time_methods[] = {
-	{"time",	time_time},
+	{"time",	time_time, 0, time_doc},
 #ifdef HAVE_CLOCK
-	{"clock",	time_clock},
+	{"clock",	time_clock, 0, clock_doc},
 #endif
-	{"sleep",	time_sleep},
-	{"gmtime",	time_gmtime},
-	{"localtime",	time_localtime},
-	{"asctime",	time_asctime},
-	{"ctime",	time_ctime},
+	{"sleep",	time_sleep, 0, sleep_doc},
+	{"gmtime",	time_gmtime, 0, gmtime_doc},
+	{"localtime",	time_localtime, 0, localtime_doc},
+	{"asctime",	time_asctime, 0, asctime_doc},
+	{"ctime",	time_ctime, 0, ctime_doc},
 #ifdef HAVE_MKTIME
-	{"mktime",	time_mktime},
+	{"mktime",	time_mktime, 0, mktime_doc},
 #endif
 #ifdef HAVE_STRFTIME
-	{"strftime",	time_strftime, 1},
+	{"strftime",	time_strftime, 1, strftime_doc},
 #endif
 #ifdef HAVE_STRPTIME
-	{"strptime",	time_strptime, 1},
+	{"strptime",	time_strptime, 1, strptime_doc},
 #endif
 	{NULL,		NULL}		/* sentinel */
 };
@@ -479,11 +536,57 @@
 	Py_DECREF(v);
 }
 
+static char module_doc[] =
+"This module provides various functions to manipulate time values.\n\
+\n\
+There are two standard representations of time.  One is the number\n\
+of seconds since the Epoch, in UTC (a.k.a. GMT).  It may be an integer\n\
+or a floating point number (to represent fractions of seconds).\n\
+The Epoch is system-defined; on Unix, it is generally January 1st, 1970.\n\
+The actual value can be retrieved by calling gmtime(0).\n\
+\n\
+The other representation is a tuple of 9 integers giving local time.\n\
+The tuple items are:\n\
+  year (four digits, e.g. 1998)\n\
+  month (1-12)\n\
+  day (1-31)\n\
+  hours (0-23)\n\
+  minutes (0-59)\n\
+  seconds (0-61, to allow for leap seconds)\n\
+  weekday (0-6, Monday is 0)\n\
+  Julian day (day in the year, 1-366)\n\
+  DST (Daylight Savings Time) flag (-1, 0 or 1)\n\
+If the DST flag is 0, the time is given in the regular time zone;\n\
+if it is 1, the time is given in the DST time zone;\n\
+if it is -1, mktime() should guess based on the date and time.\n\
+\n\
+Variables:\n\
+\n\
+timezone -- difference in seconds between UTC and local standard time\n\
+altzone -- difference in  seconds between UTC and local DST time\n\
+daylight -- whether local time should reflect DST\n\
+tzname -- tuple of (standard time zone name, DST time zone name)\n\
+\n\
+Functions:\n\
+\n\
+time() -- return current time in seconds since the Epoch as a float\n\
+clock() -- return CPU time since process start as a float\n\
+sleep() -- delay for a number of seconds given as a float\n\
+gmtime() -- convert seconds since Epoch to UTC tuple\n\
+localtime() -- convert seconds since Epoch to local time tuple\n\
+asctime() -- convert time tuple to string\n\
+ctime() -- convert time in seconds to string\n\
+mktime() -- convert local time tuple to seconds since Epoch\n\
+strftime() -- convert time tuple to string according to format specification\n\
+strptime() -- parse string to time tuple according to format specification\n\
+";
+  
+
 void
 inittime()
 {
 	PyObject *m, *d;
-	m = Py_InitModule("time", time_methods);
+	m = Py_InitModule3("time", time_methods, module_doc);
 	d = PyModule_GetDict(m);
 #ifdef HAVE_TZNAME
 	tzset();