Thank you for looking at this problem.
I'll fill a bug report on Sourceforge to track this bug.
Stefano
> Yes, I think it is a bug. But the reason is a bit different.
>
> (%i60) assume(b>0,c>0)$
> (%i61) l2 : sqrt(b^2+(c-b)^2)$
>
> The problem is that the function SIGN does not get the right answer when
> the global variable LIMITP has the value TRUE.
>
> This gives the correct positive sign:
>
> (%i62) block ([?limitp : false], sign (l2));
> (%o62) pos
>
> When limitp is set to TRUE we no longer get the expected sign:
>
> (%i63) block ([?limitp : true], sign (l2));
> (%o63) pnz
>
> We have changed the implementation of RISPLIT to ask no longer
> questions. In RISPLIT the function $SIGN is called. But when we are in
> $defint the global variable LIMITP is set to TRUE. Therefore we get a
> general form for the imagpart, because the sign of l2 is no longer known
> to Maxima:
>
> (%i64) block ([?limitp : true], imagpart (l2));
> (%o64) sin(atan2(0,c^2-2*b*c+2*b^2)/2)*sqrt(abs(c^2-2*b*c+2*b^2))
>
> Earlier implementations of Maxima have the same problem, but Maxima asks
> the question is c^2-2*b*c+2*b^2 pos, neg, or zero?
>
> I will have a further look at the problem.
>
> Dieter Kaiser