diff -Nru GiNaC-1.2.3-orig/ginac/inifcns_nstdsums.cpp GiNaC-1.2.3/ginac/inifcns_nstdsums.cpp --- GiNaC-1.2.3-orig/ginac/inifcns_nstdsums.cpp 2004-09-23 10:55:05.000000000 +0400 +++ GiNaC-1.2.3/ginac/inifcns_nstdsums.cpp 2004-09-23 11:14:09.000000000 +0400 @@ -504,8 +504,13 @@ static ex Li_evalf(const ex& x1, const ex& x2) { // classical polylogs - if (is_a(x1) && is_a(x2)) { - return Li_num(ex_to(x1).to_int(), ex_to(x2)); + if (is_a(x1) && !is_a(x2)) { + // try to numerically evaluate second argument + ex x2_val = x2.evalf(); + if (is_a(x2_val)) + return Li_num(ex_to(x1).to_int(), ex_to(x2_val)); + else + return Li(x1,x2).hold(); } // multiple polylogs else if (is_a(x1) && is_a(x2)) {