This example seems not to be correct:

```
In [98]: S = Sum(x, (x, 0, 3))

In [99]: S
Out[99]: Sum(x, (x, 0, 3))

In [100]: Sr = reverse_order(S, 0)

In [101]: Sr
Out[101]: Sum(-x, (x, 1, 2))

In [102]: S.doit()
Out[102]: 6

In [103]: Sr.doit()
Out[103]: -3
```

Well, the problem is of course not the example but the function.