Why does error_messages_for take string as param?

Take a look at this patch http://dev.rubyonrails.org/ticket/9699

Nope - I submitted that patch, but it hasn't yet been committed.

Fred