<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,7 @@
 *2.1.1 (next release)*
 
+* Fix TimeWithZone unmarshaling: coerce unmarshaled Time instances to utc, because Ruby's marshaling of Time instances doesn't respect the zone [Geoff Buesing]
+
 * Added StringQuestioneer for doing things like StringQuestioneer.new(&quot;production&quot;).production? # =&gt; true and StringQuestioneer.new(&quot;production&quot;).development? # =&gt; false [DHH]
 
 * Fixed Date#end_of_quarter to not blow up on May 31st [#289 state:resolved] (Danger)</diff>
      <filename>activesupport/CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -246,7 +246,7 @@ module ActiveSupport
     end
     
     def marshal_load(variables)
-      initialize(variables[0], ::Time.send!(:get_zone, variables[1]), variables[2])
+      initialize(variables[0].utc, ::Time.send!(:get_zone, variables[1]), variables[2].utc)
     end
 
     # Ensure proxy class responds to all methods that underlying time instance responds to.</diff>
      <filename>activesupport/lib/active_support/time_with_zone.rb</filename>
    </modified>
    <modified>
      <diff>@@ -320,8 +320,11 @@ class TimeWithZoneTest &lt; Test::Unit::TestCase
       marshal_str = Marshal.dump(@twz)
       mtime = Marshal.load(marshal_str)
       assert_equal Time.utc(2000, 1, 1, 0), mtime.utc
+      assert mtime.utc.utc?
       assert_equal ActiveSupport::TimeZone['Eastern Time (US &amp; Canada)'], mtime.time_zone
       assert_equal Time.utc(1999, 12, 31, 19), mtime.time
+      assert mtime.time.utc?
+      assert_equal @twz.inspect, mtime.inspect
     end
   end
 
@@ -331,8 +334,11 @@ class TimeWithZoneTest &lt; Test::Unit::TestCase
       marshal_str = Marshal.dump(twz)
       mtime = Marshal.load(marshal_str)
       assert_equal Time.utc(2000, 1, 1, 0), mtime.utc
+      assert mtime.utc.utc?
       assert_equal 'America/New_York', mtime.time_zone.name
       assert_equal Time.utc(1999, 12, 31, 19), mtime.time
+      assert mtime.time.utc?
+      assert_equal @twz.inspect, mtime.inspect
     end
   end
 </diff>
      <filename>activesupport/test/core_ext/time_with_zone_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>6e58a254942eb6d7b508452bb7b5b418607dc272</id>
    </parent>
  </parents>
  <author>
    <name>gbuesing</name>
    <email>gbuesing@gmail.com</email>
  </author>
  <url>http://github.com/rails/rails/commit/e6ad7ff466f045b30c7b07e8ee5f3865c9604687</url>
  <id>e6ad7ff466f045b30c7b07e8ee5f3865c9604687</id>
  <committed-date>2008-07-14T21:26:48-07:00</committed-date>
  <authored-date>2008-07-14T21:26:48-07:00</authored-date>
  <message>Fix TimeWithZone unmarshaling: coerce unmarshaled Time instances to utc, because Ruby's marshaling of Time instances doesn't respect the zone</message>
  <tree>076cd1017b4e935b89905dc29074c7ae721ebb41</tree>
  <committer>
    <name>gbuesing</name>
    <email>gbuesing@gmail.com</email>
  </committer>
</commit>
