<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1875,7 +1875,7 @@ module ActiveRecord
                           jt_sti_extra = &quot; AND %s.%s = %s&quot; % [
                             connection.quote_table_name(aliased_join_table_name),
                             connection.quote_column_name(through_reflection.active_record.inheritance_column),
-                            through_reflection.klass.quote_value(through_reflection.klass.name.demodulize)]
+                            through_reflection.klass.quote_value(through_reflection.klass.sti_name)]
                         end
                       when :belongs_to
                         first_key = primary_key
@@ -1943,7 +1943,7 @@ module ActiveRecord
               join &lt;&lt; %(AND %s.%s = %s ) % [
                 connection.quote_table_name(aliased_table_name),
                 connection.quote_column_name(klass.inheritance_column),
-                klass.quote_value(klass.name.demodulize)] unless klass.descends_from_active_record?
+                klass.quote_value(klass.sti_name)] unless klass.descends_from_active_record?
 
               [through_reflection, reflection].each do |ref|
                 join &lt;&lt; &quot;AND #{interpolate_sql(sanitize_sql(ref.options[:conditions]))} &quot; if ref &amp;&amp; ref.options[:conditions]</diff>
      <filename>activerecord/lib/active_record/associations.rb</filename>
    </modified>
    <modified>
      <diff>@@ -995,4 +995,22 @@ class HasManyAssociationsTest &lt; ActiveRecord::TestCase
     assert firm.clients.loaded?
   end
 
+  def test_joins_with_namespaced_model_should_use_correct_type
+    old = ActiveRecord::Base.store_full_sti_class
+    ActiveRecord::Base.store_full_sti_class = true
+
+    firm = Namespaced::Firm.create({ :name =&gt; 'Some Company' })
+    firm.clients.create({ :name =&gt; 'Some Client' })
+
+    stats = Namespaced::Firm.find(firm.id, {
+      :select =&gt; &quot;#{Namespaced::Firm.table_name}.*, COUNT(#{Namespaced::Client.table_name}.id) AS num_clients&quot;,
+      :joins  =&gt; :clients,
+      :group  =&gt; &quot;#{Namespaced::Firm.table_name}.id&quot;
+    })
+    assert_equal 1, stats.num_clients.to_i
+
+  ensure
+    ActiveRecord::Base.store_full_sti_class = old
+  end
+
 end</diff>
      <filename>activerecord/test/cases/associations/has_many_associations_test.rb</filename>
    </modified>
    <modified>
      <diff>@@ -18,6 +18,13 @@ end
 module Namespaced
   class Company &lt; ::Company
   end
+
+  class Firm &lt; ::Company
+    has_many :clients, :class_name =&gt; 'Namespaced::Client'
+  end
+
+  class Client &lt; ::Company
+  end
 end
 
 class Firm &lt; Company</diff>
      <filename>activerecord/test/models/company.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c3aad223321d1897c9e2269b32c3c2da7af814d1</id>
    </parent>
  </parents>
  <author>
    <name>Daniel Guettler</name>
    <email>daniel.guettler@gmail.com</email>
  </author>
  <url>http://github.com/rails/rails/commit/c2f1918990b82516b1bf6142274e892df776ffff</url>
  <id>c2f1918990b82516b1bf6142274e892df776ffff</id>
  <committed-date>2008-08-24T09:26:57-07:00</committed-date>
  <authored-date>2008-07-21T12:21:13-07:00</authored-date>
  <message>Use klass.sti_name to make sure associations take store_full_sti_class into account. [#671 state:resolved]

Signed-off-by: Pratik Naik &lt;pratiknaik@gmail.com&gt;</message>
  <tree>5ab8526642c92adb4c939d594f35819ebf3ab03b</tree>
  <committer>
    <name>Tarmo T&#228;nav</name>
    <email>tarmo@itech.ee</email>
  </committer>
</commit>
