I think my answer to http://mathematica.stackexchange.com/questions/3261/block-attributes-of-equal is also the answer here. ---- See [Plus](http://reference.wolfram.com/mathematica/ref/Plus.html) in the reference manual: > Unlike other functions, Plus applies built-in rules before > user-defined ones. As a result, it is not possible to make definitions > such as `2+2=5`. The ability for user-defined rules to supersede built-in ones was lost in [Version 3](http://reference.wolfram.com/mathematica/tutorial/IncompatibleChanges.html#21514140). ---- There is a similar property for [`Times`](http://reference.wolfram.com/language/ref/Times.html). Here is some evidence that rules for `Plus` are applied internally even when `Plus` is blocked: Block[{Plus}, 1 + 2*2 /. Plus -> List] (* 5 *) p[x__] := Plus[x]; Block[{p}, p[1, 2*2] /. p -> List] (* {1, 4} *)