Where the primary key of a model object is named "id", line 1939 of ActiveRecord source file "base.rb"
self.class.send(:define_read_method, :id, attr_name, column)
seems to make method named "id" on the model object's class, not on the model object. References to the method "id" on model objects thus invoke "method_missing" at "attribute_methods.rb" line 181, which calls "define_attribute_methods" if it was not already called. But "define_attribute_methods" intentionally avoids creating a definition for "id" as well. Thus "method_missing" goes into infinite recursion at line 194.
Note that this problem does not seem to exist in most other environments.
One workaround is to change line 193 of "attribute_methods.rb" to read
if false and self.class.primary_key.to_s == method_name
Environment: Rails 2.0.2, Cygwin ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-cygwin] under Windows XP SP3 RC1, MySQL 5.1.21.