diff -Nru GiNaC/ginac/pseries.cpp GiNaC-hacked/ginac/pseries.cpp --- GiNaC/ginac/pseries.cpp 2004-08-09 18:32:09.000000000 +0400 +++ GiNaC-hacked/ginac/pseries.cpp 2004-10-01 10:21:00.000000000 +0400 @@ -955,10 +955,16 @@ if (!must_expand_basis && !exponent.info(info_flags::negint) && !is_a(basis)) return basic::series(r, order, options); + if (!must_expand_basis && !exponent.info(info_flags::negint) && !is_a(exponent)) + return basic::series(r, order, options); + // Is the expression of type 0^something? if (!must_expand_basis && !basis.subs(r, subs_options::no_pattern).is_zero() && !is_a(basis)) return basic::series(r, order, options); + if (!must_expand_basis && !basis.subs(r, subs_options::no_pattern).is_zero() && !is_a(exponent)) + return basic::series(r, order, options); + // Singularity encountered, is the basis equal to (var - point)? if (basis.is_equal(r.lhs() - r.rhs())) { epvector new_seq;