diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index ba9464d26..e041729ca 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-04  Christopher Faylor  <me.cygwin2012@cgf.cx>
+
+	* dcrt0.cc (build_argv): Guard against NULL pointer dereference found
+	by Clang.
+
 2012-07-04  Christopher Faylor  <me.cygwin2012@cgf.cx>
 
 	* exceptions.cc (setup_handler): Remove unneeded assignment found by
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index e28aecde9..70b962889 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -353,7 +353,8 @@ build_argv (char *cmd, char **&argv, int &argc, int winshell)
 	}
     }
 
-  argv[argc] = NULL;
+  if (argv)
+    argv[argc] = NULL;
 
   debug_printf ("argc %d", argc);
 }