diff -Naur original/activerecord/lib/active_record/associations/has_many_through_association.rb new/activerecord/lib/active_record/associations/has_many_through_association.rb --- original/activerecord/lib/active_record/associations/has_many_through_association.rb 2008-10-03 17:09:15.000000000 +0530 +++ new/activerecord/lib/active_record/associations/has_many_through_association.rb 2008-10-03 17:08:11.000000000 +0530 @@ -158,9 +158,9 @@ end "INNER JOIN %s ON %s.%s = %s.%s %s #{@reflection.options[:joins]} #{custom_joins}" % [ - @reflection.through_reflection.table_name, + @reflection.through_reflection.quoted_table_name, @reflection.table_name, reflection_primary_key, - @reflection.through_reflection.table_name, source_primary_key, + @reflection.through_reflection.quoted_table_name, source_primary_key, polymorphic_join ] end diff -Naur original/activerecord/lib/active_record/associations.rb new/activerecord/lib/active_record/associations.rb --- original/activerecord/lib/active_record/associations.rb 2008-10-03 17:09:37.000000000 +0530 +++ new/activerecord/lib/active_record/associations.rb 2008-10-03 17:08:04.000000000 +0530 @@ -1935,7 +1935,7 @@ protected def aliased_table_name_for(name, suffix = nil) - if !parent.table_joins.blank? && parent.table_joins.to_s.downcase =~ %r{join(\s+\w+)?\s+#{name.downcase}\son} + if !parent.table_joins.blank? && parent.table_joins.to_s.downcase =~ %r{join(\s+\w+)?\s+#{active_record.connection.quote_table_name(name.downcase)}\son} @join_dependency.table_aliases[name] += 1 end