diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index b229a8e0925ef12ba3b1e2762636a49922830439..160801feea5653360e3c6b17956aa61ce3ccc253 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -428,8 +428,8 @@ time_gm(struct tm *tm)
         /* save value in case *tm is overwritten by gmtime() */
         sec = tm->tm_sec;
 
-        tm2 = gmtime(&t);
-        if ((t2 = sub_mkgmt(tm2)) == (time_t) -1)
+        tm2 = gmtime(&t);	/* why not use gmtime_r instead? */
+        if (tm2 == NULL || (t2 = sub_mkgmt(tm2)) == (time_t) -1)
                 return (time_t) -1;
 
         if (t2 < t || tm2->tm_sec != sec) {