diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 1c55f5180..960d728e0 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2006-04-17  Eric Blake  <ebb9@byu.net>
+
+	* mktemp.cc (_gettemp): Open temp files in binary mode.
+
 2006-04-14  Corinna Vinschen  <corinna@vinschen.de>
 
 	* fhandler_disk_file.cc (fhandler_disk_file::readdir): Use UINT32_MAX
diff --git a/winsup/cygwin/mktemp.cc b/winsup/cygwin/mktemp.cc
index f7b7236f1..5567e4a67 100644
--- a/winsup/cygwin/mktemp.cc
+++ b/winsup/cygwin/mktemp.cc
@@ -105,7 +105,8 @@ _gettemp(char *path, int *doopen, int domkdir)
     {
       if (doopen)
 	{
-	  if ((*doopen = open (path, O_CREAT | O_EXCL | O_RDWR, 0600)) >= 0)
+	  if ((*doopen = open (path, O_CREAT | O_EXCL | O_RDWR | O_BINARY,
+			       S_IRUSR | S_IWUSR)) >= 0)
 	    return 1;
 	  if (errno != EEXIST)
 	    return 0;