From: Yukihiro Matsumoto Date: 2009-03-06T15:54:38+09:00 Subject: [ruby-core:22696] Re: [Bug #1248] e.exception(e) returns self Hi, In message "Re: [ruby-core:22687] [Bug #1248] e.exception(e) returns self" on Fri, 6 Mar 2009 04:36:56 +0900, Tomas Matousek writes: |Exception#exception(arg) instance method should return a new exception of the same class as self with message arg. It does so for any object passed in as an argument except for if e is passed in. I don't see any reason for special casing the method this way. | |Repro: |e = Exception.new |p e.exception(e).object_id == e.object_id # => true; it should return false You've missed the reason why you considered this behavior to be a bug. Have you been bitten by this? Or just for the sake of your feeling of consistency? Avoiding object allocation is one good reason. matz.