diff --git a/ChangeLog b/ChangeLog
index 37767e4f..20b90261 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -7,6 +7,9 @@ VERSION 0.8.1cvs
  * SMTPTransport.cpp: fixed bug in disconnect() when authentication is
    not needed (thanks to Benjamin Biron).
 
+ * dateTime.cpp: gmtime() and localtime() are reentrant when using
+   MS C runtime library (MinGW/MSVC).
+
 2005-11-06  Vincent Richard  <vincent@vincent-richard.net>
 
  * Started version 0.8.1.
diff --git a/src/dateTime.cpp b/src/dateTime.cpp
index ea965805..8b2e33a2 100644
--- a/src/dateTime.cpp
+++ b/src/dateTime.cpp
@@ -648,7 +648,18 @@ datetime::datetime(const datetime& d)
 
 datetime::datetime(const time_t t, const int zone)
 {
-#ifdef _REENTRANT
+#if defined(_MSC_VER) || defined(__MINGW32__)
+	// These functions are reentrant in MS C runtime library
+	struct tm* gtm = gmtime(&t);
+	struct tm* ltm = localtime(&t);
+
+	struct tm tms;
+
+	if (gtm)
+		tms = *gtm;
+	else if (ltm)
+		tms = *ltm;
+#elif defined(_REENTRANT)
 	struct tm tms;
 
 	if (!gmtime_r(&t, &tms))