The function ComplexPower() in mpmath_c.c apparently has a bug. The bug appears to be in the Linux also - I tried runninmg it, but haven't checked the code. If so, someone did an incredible job of translating the assembler! I instrumented StkPwr in parser.c to print out the arguments and the result. I found this wehnen running Jim White's example: Arg1: 0.166666666666667 0.000000000000000 Arg2: -5.000000000000000 0.000000000000000 Result: 1.132467200411351 -0.653830243005915 Arg1: 0.166666666666667 0.000000000000000 Arg2: -5.000000000000000 0.000000000000000 Result: 1.132467200411351 0.653830243005915 In two subsequent calls, the sign of the imaginary part changed despite the arguments being the same!! The problem is in ComplexPower() in mpmath_c.c. I was able to make the symtoms go away by replacing the FPUcplxlog function with C: /* FPUcplxlog(&xx, &cLog); */ cLog.x = .5*log(xx.x*xx.x + xx.y*xx.y); cLog.y = atan2(xx.y,xx.x); That's as far as I got. WIll take this up again soon. Tim