Index: numeric.cpp =================================================================== RCS file: /home/cvs/GiNaC/ginac/numeric.cpp,v retrieving revision 1.114 diff -u -r1.114 numeric.cpp --- numeric.cpp 29 Jun 2005 14:09:24 -0000 1.114 +++ numeric.cpp 9 Nov 2005 14:46:29 -0000 @@ -631,9 +631,15 @@ const numeric &o = ex_to(other); if (this->is_equal(o) || this->is_equal(-o)) return true; - if (o.imag().is_zero()) // e.g. scan for 3 in -3*I - return (this->real().is_equal(o) || this->imag().is_equal(o) || - this->real().is_equal(-o) || this->imag().is_equal(-o)); + if (o.imag().is_zero()) { // e.g. scan for 3 in -3*I + if(!this->real().is_equal(*_num0_p)) + if(this->real().is_equal(o) || this->real().is_equal(-o)) + return true; + if(!this->imag().is_equal(*_num0_p)) + if(this->imag().is_equal(o) || this->imag().is_equal(-o)) + return true; + return false; + } else { if (o.is_equal(I)) // e.g scan for I in 42*I return !this->is_real();