diff --git a/libc/bionic/utimes.cpp b/libc/bionic/utimes.cpp
index 8950972..65f2d0b 100644
--- a/libc/bionic/utimes.cpp
+++ b/libc/bionic/utimes.cpp
@@ -34,9 +34,13 @@
 
 int utimes(const char* path, const timeval tv[2]) {
   timespec ts[2];
-  if (!timespec_from_timeval(ts[0], tv[0]) || !timespec_from_timeval(ts[1], tv[1])) {
-    errno = EINVAL;
-    return -1;
+  timespec* ts_ptr = NULL;
+  if (tv != NULL) {
+    if (!timespec_from_timeval(ts[0], tv[0]) || !timespec_from_timeval(ts[1], tv[1])) {
+      errno = EINVAL;
+      return -1;
+    }
+    ts_ptr = ts;
   }
-  return utimensat(AT_FDCWD, path, ts, 0);
+  return utimensat(AT_FDCWD, path, ts_ptr, 0);
 }
diff --git a/libc/include/utime.h b/libc/include/utime.h
index fa7cd2f..3d72da4 100644
--- a/libc/include/utime.h
+++ b/libc/include/utime.h
@@ -25,6 +25,7 @@
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  */
+
 #ifndef _UTIME_H_
 #define _UTIME_H_
 
@@ -34,9 +35,8 @@
 
 __BEGIN_DECLS
 
-extern int  utime(const char *, const struct utimbuf *);
+extern int utime(const char*, const struct utimbuf*);
 
 __END_DECLS
 
 #endif /* _UTIME_H_ */
-
diff --git a/tests/sys_time_test.cpp b/tests/sys_time_test.cpp
index 186aa16..730992f 100644
--- a/tests/sys_time_test.cpp
+++ b/tests/sys_time_test.cpp
@@ -19,6 +19,8 @@
 #include <errno.h>
 #include <sys/time.h>
 
+#include "TemporaryFile.h"
+
 TEST(sys_time, utimes) {
   timeval tv[2];
   memset(&tv, 0, sizeof(tv));
@@ -38,3 +40,9 @@
   ASSERT_EQ(-1, utimes("/", tv));
   ASSERT_EQ(EINVAL, errno);
 }
+
+// http://b/11383777
+TEST(sys_time, utimes_NULL) {
+  TemporaryFile tf;
+  ASSERT_EQ(0, utimes(tf.filename, NULL));
+}
