diff --git a/libc/bionic/time64_config.h b/libc/bionic/time64_config.h
index 53bcecf6b..13850451c 100644
--- a/libc/bionic/time64_config.h
+++ b/libc/bionic/time64_config.h
@@ -33,7 +33,7 @@
 */
 #define HAS_GMTIME_R
 #define HAS_LOCALTIME_R
-/*#define HAS_TIMEGM */
+#define HAS_TIMEGM
 
 
 /* Details of non-standard tm struct elements.
diff --git a/libc/docs/CHANGES.TXT b/libc/docs/CHANGES.TXT
index bc641f46b..67b9e76da 100644
--- a/libc/docs/CHANGES.TXT
+++ b/libc/docs/CHANGES.TXT
@@ -9,6 +9,8 @@ Differences between current and Android 2.3:
 
 - <sys/cdefs.h>: Include <android/api-level.h>
 
+- <time.h>: Add timegm(), timelocal(), time2posix() and posix2time()
+
 -------------------------------------------------------------------------------
 Differences between Android 2.3 and Android 2.2:
 
diff --git a/libc/include/time.h b/libc/include/time.h
index 5d1a0e268..4ad4f7bd7 100644
--- a/libc/include/time.h
+++ b/libc/include/time.h
@@ -128,6 +128,11 @@ extern int  timer_settime(timer_t timerid, int flags, const struct itimerspec *v
 extern int  timer_gettime(timer_t timerid, struct itimerspec *value);
 extern int  timer_getoverrun(timer_t  timerid);
 
+extern time_t timelocal(struct tm *tm);
+extern time_t timegm(struct tm* tm);
+extern time_t time2posix(time_t ti);
+extern time_t posix2time(time_t ti);
+
 __END_DECLS
 
 #endif /* _TIME_H_ */
diff --git a/libc/tzcode/localtime.c b/libc/tzcode/localtime.c
index 85a913ea6..e442a03a5 100644
--- a/libc/tzcode/localtime.c
+++ b/libc/tzcode/localtime.c
@@ -60,6 +60,14 @@ static char elsieid[] = "@(#)localtime.c    8.3";
 #  define  XLOG(x)   do{}while (0)
 #endif
 
+/* Add the following function implementations:
+ *  timelocal()
+ *  timegm()
+ *  time2posix()
+ *  posix2time()
+ */
+#define STD_INSPIRED 1
+
 /* THREAD-SAFETY SUPPORT GOES HERE */
 static pthread_mutex_t  _tzMutex = PTHREAD_MUTEX_INITIALIZER;
 
@@ -1509,7 +1517,7 @@ struct tm *     tmp;
 }
 
 #ifdef STD_INSPIRED
-
+#if 0 /* disabled because there is no good documentation for this function */
 struct tm *
 offtime(timep, offset)
 const time_t * const    timep;
@@ -1517,7 +1525,7 @@ const long      offset;
 {
     return gmtsub(timep, offset, &tmGlobal);
 }
-
+#endif /* 0 */
 #endif /* defined STD_INSPIRED */
 
 /*
@@ -2106,6 +2114,7 @@ struct tm * const   tmp;
     return result;
 }
 
+#if 0 /* disable due to lack of clear documentation on this function */
 time_t
 timeoff(tmp, offset)
 struct tm * const   tmp;
@@ -2120,6 +2129,7 @@ const long      offset;
 
     return result;
 }
+#endif /* 0 */
 
 #endif /* defined STD_INSPIRED */