Interesting...I didn't know you could pass a different backtrace to an error like this.  It's probably more user friendly to pass the metadata caller like this, but it's also potentially deceptive: if the user wants to actually see where the error was raised, (so they can look into the rspec code that raised it), the backtrace won't tell them like it usually would.

I've actually been thinking of doing away with `metadata[:caller]` -- as you discovered, `caller` is surprisingly slow, and, AFAIK, it's only needed to support line number filtering, but ruby 1.9+ provides us with a much more efficient way to support that: `Proc#source_location` gives us the file and line number where a block originates, and is _much_ cheaper than using `caller`, so I'm planning to try to move that direction after beta2 ships, at which point it won't be available to pass here anymore.  Ruby 1.8.7 would still use `caller` but it would just be used to set `metadata[:source_location]` or something similar and there would no longer be a `:caller` key in the metadata.

How important to you is it that `metadata[:caller]` is passed here?