> I've tried removing all gems in case one of them was doing something strange. I've searched the Ruby source code, but I can't see anything that might cause this.
I can't even locate where the Mutex class gets "synchronize" added as a method to it.  thread.c defines rb_mutex_synchronize, but Init_Thread therein doesn't appear to add it as a method on rb_cMutex.

I note that: 

Mutex.new.method(:lock).source_location => nil
(2345).method(:to_s).source_location => nil

Yet:

Mutex.new.method(:synchronize).source_location => ["<internal:prelude>", 7]

So it's definitely special-cased in a way that may be affecting your ability to access it.

Arlen