Hi!
It appears that in the print_csrc context of mul::print
function a line 
	if (precedence <= level)
is missing just before of the line #139 in mul.cpp
	c.s << "(";
which is causing the following incorrect result:
>>> ((x+y)**(x*y)).to_csrc()
pow(y+x,(y*x)
for instance.
Regards,
	Pearu