The behavior of Fime.utime on Ruby 1.8 on Windows looks wrong: H:\devel>type test_mtime.rb time = Time.local(2000, 1, 1, 0, 0, 0) file = "foo.txt" File.open(file, "w") {} File.utime time, time, file puts time.to_f puts File.mtime(file).to_f H:\devel>c:\ruby1.8\bin\ruby.exe -v test_mtime.rb ruby 1.8.2 (2004-12-25) [i386-mswin32] 946681200.0 946684800.0 The file's mtime is 1 hour later. Using Time.gm doesn't fix the problem. Compare with Ruby 1.6, which looks good: H:\devel>c:\ruby\bin\ruby.exe -v test_mtime.rb ruby 1.6.7 (2002-03-01) [i386-mingw32] 946681200.0 946681200.0 I don't know if it's related, but I'm using a FAT32 filesystem. mike