I had to work with some series expansions lately, and at some point I realised that something was becoming inconsistent at some point. It seems that applying `Factor` broke my series expansions. Here's a minimal example extracted from my computations. Consider the following expression test = Sqrt[1/(1 - x)] (Sqrt[1/(1 - x)] + 1) + 1; Now look at those series expansions of `test` around `x=1`: ser1 = Series[test // Factor, {x, 1, -1}] ser2 = Series[test, {x, 1, -1}] Not only are `ser1` and `ser2` different, but what's worse is that ser2 - ser1 gives `1/(x-1) + O(x-1)^0`. At this point I would have expected `O(x-1)^0`, how come `Factor` can break a series expansion so much? Is this sort of behaviour a feature or a bug? --- The problem seems to be in `ser2`, if one looks at `List@@ser2` one realises that `ser2` is saved as `a0+O(x-1)^2` with `a0` containing `x`, this seems to be the root of all evil. Interestingly, if one alters `test` to test = 1/Sqrt[(1 - x)] (1/Sqrt[(1 - x)] + 1) + 1; which is really not much of a change, one obtains a different result. Given this instability, I don't know how I should trust the series expansions at all. --- Here's a similar, but more subtle computation, which leads to two different results. Let's add `1/(1-x)` to `test` test = 1/(1 - x) + 1/Sqrt[1 - x] (1/Sqrt[1 - x] + 1) + 1; ser1 = Series[test // Factor, {x, 1, -1}]; ser2 = Series[test, {x, 1, -1}]; and compute Limit[(1 - x) ser1, x -> 1] (* = 2 *) Limit[(1 - x) ser2, x -> 1] (* = 1 *) In a realistic scenario `test` would be much more complicated, and I wouldn't compute both `ser1` and `ser2` and then compare, but just one of them. So there's a 50/50 chance that I'd obtain a wrong result without being aware of it. --- Mathematica Version : 11.1 .0 .0 Platform : Mac OS X x86 (32-bit, 64-bit kernel)