I was fooled: Ruby 1.9 has ordered hashes; 1.8 doesn't. So what I did in Revision 689 works in Ruby 1.9, but fails in 1.8. Now we parse the POST params ourselves.