--- futimes.org	2006-09-19 13:00:49.000000000 +0000
+++ futimes.c	2006-09-19 13:05:13.000000000 +0000
@@ -28,20 +28,28 @@
 int
 __futimes (int fd, const struct timeval tvp[2])
 {
-  struct timeval timevals[2];
   error_t err;
-
+  
   if (tvp == NULL)
     {
+      volatile struct timeval timevals[2];
       /* Setting the number of microseconds to `-1' tells the
          underlying filesystems to use the current time.  */
       timevals[1].tv_usec = timevals[0].tv_usec = (time_t)-1;
-      tvp = timevals;
+      
+      err = HURD_DPORT_USE (fd, __file_utimes (port,
+					       *(time_value_t *) &timevals[0],
+					       *(time_value_t *) &timevals[1]));
+      
     }
+  else
+    {
 
-  err = HURD_DPORT_USE (fd, __file_utimes (port,
-					   *(time_value_t *) &tvp[0],
-					   *(time_value_t *) &tvp[1]));
+      err = HURD_DPORT_USE (fd, __file_utimes (port,
+					       *(time_value_t *) &tvp[0],
+					       *(time_value_t *) &tvp[1]));
+
+    }
   return err ? __hurd_dfail (fd, err) : 0;
 }
 weak_alias (__futimes, futimes)
