integration of g(x).dg(x)dx.exp(g(x))



Hello all,

I am trying to integrate the following function:

f:g(x)*exp(g(x))*diff(g(x),x);
sol:integrate(f,x);

The solution is 
sol:(g(x)-1)*exp(g(x));

which can be checked by differentiating again to x:
 ratsimp(diff(sol,x));

However, integrate does not seem to be able to find this solution.
antidiff by the way, is able to handle this problem correctly:
antidiff(f,x,g(x));


This is by the way a standard example of what the Risch algorithm should be 
able to solve, which is based on the idea that

(f*exp(g))' = ( f' + f * g' ) * exp(g)

I am a bit puzzled. Why does integrate not handle this simple problem?
Should integrate be able to handle this problem? Is there a way to get this 
solution without using antidiff?
Or can I simply always use antidiff instead of integrate when I am only 
dealing with indefinite integrals? 


Regards,
NB