<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -229,7 +229,7 @@ module ActiveRecord
         options = reflection.options
 
         primary_key_name = reflection.through_reflection_primary_key_name
-        id_to_record_map, ids = construct_id_map(records, primary_key_name)
+        id_to_record_map, ids = construct_id_map(records, primary_key_name || reflection.options[:primary_key])
         records.each {|record| record.send(reflection.name).loaded}
 
         if options[:through]</diff>
      <filename>activerecord/lib/active_record/association_preload.rb</filename>
    </modified>
    <modified>
      <diff>@@ -2171,7 +2171,7 @@ module ActiveRecord
                         aliased_table_name,
                         foreign_key,
                         parent.aliased_table_name,
-                        parent.primary_key
+                        reflection.options[:primary_key] || parent.primary_key
                       ]
                   end
                 when :belongs_to</diff>
      <filename>activerecord/lib/active_record/associations.rb</filename>
    </modified>
    <modified>
      <diff>@@ -786,4 +786,21 @@ class EagerAssociationTest &lt; ActiveRecord::TestCase
       assert_equal Person.find(person.id).agents, person.agents
     end
   end
+
+  def test_preload_has_many_using_primary_key
+    expected = Firm.find(:first).clients_using_primary_key.to_a
+    firm = Firm.find :first, :include =&gt; :clients_using_primary_key
+    assert_no_queries do
+      assert_equal expected, firm.clients_using_primary_key
+    end
+  end
+
+  def test_include_has_many_using_primary_key
+    expected = Firm.find(1).clients_using_primary_key.sort_by &amp;:name
+    firm = Firm.find 1, :include =&gt; :clients_using_primary_key, :order =&gt; 'clients_using_primary_keys_companies.name'
+    assert_no_queries do
+      assert_equal expected, firm.clients_using_primary_key
+    end
+  end
+  
 end</diff>
      <filename>activerecord/test/cases/associations/eager_test.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>f4f8923cf0ef5bd31f9e98cecf4603d0c4bde296</id>
    </parent>
  </parents>
  <author>
    <name>Frederick Cheung</name>
    <login>fcheung</login>
    <email>frederick.cheung@gmail.com</email>
  </author>
  <url>http://github.com/rails/rails/commit/7db1704068b86fb2212388b14b4963526bacfa5d</url>
  <id>7db1704068b86fb2212388b14b4963526bacfa5d</id>
  <committed-date>2008-12-26T15:17:56-08:00</committed-date>
  <authored-date>2008-12-26T14:53:07-08:00</authored-date>
  <message>Fix :include of has_many associations with :primary_key option</message>
  <tree>615165073929beb1f1c0ad67fd8f146446ac2c56</tree>
  <committer>
    <name>Frederick Cheung</name>
    <login>fcheung</login>
    <email>frederick.cheung@gmail.com</email>
  </committer>
</commit>
