Can you guard against this with a `return unless @klass.instance_method(method_name).owner == @klass` ?

Alternately, if there's not a good guard conditional that would work, I'd prefer to see this:

``` ruby
begin
  remove_method method_name
rescue NameError
  # explain why this can happen and why it's safe to ignore the error
else
  alias_method  method_name, alias_method_name
  remove_method alias_method_name
end
```

I like this better because it's clear where the `NameError` comes from.  Rescuing and ignoring errors is rare enough that I think a comment explaining why is nearly always warranted.