--- has_many_through_association.rb.orig 2009-01-07 17:32:59.000000000 -0500 +++ has_many_through_association.rb 2009-01-07 17:32:40.000000000 -0500 @@ -135,5 +135,7 @@ def construct_select(custom_select = nil) distinct = "DISTINCT " if @reflection.options[:uniq] - selected = custom_select || @reflection.options[:select] || "#{distinct}#{@reflection.quoted_table_name}.*" + selected = [custom_select || @reflection.options[:select] || "#{distinct}#{@reflection.quoted_table_name}.*"] + selected += (@reflection.options[:order] || "").scan(/([\.a-zA-Z_]+)/).flatten.reject {|e| e.match(/asc|desc/i)} + selected.join(", ") end