This is necessary because in Ruby 1.9.3, the behavior of an internal dup of
the array (rb_ary_dup) was changed to always return an array instance, not
an instance of the actual class which it was working on.
Why can't people just stick to what works but instead try to have special
snowflakes everywhere? </rant>