x509_get_current_time() uses localtime_r() to prevent thread issues
diff --git a/ChangeLog b/ChangeLog
index 8fd198d..a288c06 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -41,7 +41,7 @@
      out_ctr failed
    * ssl_handshake_init() was leaving dirty pointers in subcontexts if malloc
      of one of them failed
-
+   * x509_get_current_time() uses localtime_r() to prevent thread issues
 
 = Version 1.2.10 released 2013-10-07
 Changes
diff --git a/library/x509parse.c b/library/x509parse.c
index 16b0149..085a3cf 100644
--- a/library/x509parse.c
+++ b/library/x509parse.c
@@ -3092,18 +3092,18 @@
     now->min = st.wMinute;
     now->sec = st.wSecond;
 #else
-    struct tm *lt;
+    struct tm lt;
     time_t tt;
 
     tt = time( NULL );
-    lt = localtime( &tt );
+    localtime_r( &tt, &lt );
 
-    now->year = lt->tm_year + 1900;
-    now->mon = lt->tm_mon + 1;
-    now->day = lt->tm_mday;
-    now->hour = lt->tm_hour;
-    now->min = lt->tm_min;
-    now->sec = lt->tm_sec;
+    now->year = lt.tm_year + 1900;
+    now->mon = lt.tm_mon + 1;
+    now->day = lt.tm_mday;
+    now->hour = lt.tm_hour;
+    now->min = lt.tm_min;
+    now->sec = lt.tm_sec;
 #endif
 }