The TimeSpan methods return new instances of TimeSpan rather than modifying the value of the original struct. This is accepted behavior. However, the wording on the methods could be interpreted by those not familiar with immutable structs to mean that the original instance would be modified. For example, the description in intellisense for TimeSpan.Add is "Adds the specified System.TimeSpan to this instance." If I didn't know any better, I would think *this instance* would be modified. I believe a better wording for such methods would be something along the lines of "Returns the result of the specified System.TimeSpan added to this instance."