Hello everybody, Here is a patch that is supposed to make substitutions, optionally, a bit more semantic (as opposed to syntactic). I also wrote a bit of documentation for it, so hava a look at the patch for a description. (Also corrected some spelling errors in the manual). This disadvantage of this patch is that it breaks compatibility of the interface. The subs method gets an extra optional argument like this ex subs(const lst & ls, const lst & lr, unsigned options = 0, bool no_pattern = false) const This is inconvenient if people have written subclasses. They will need to include this extra option everywhere. Furthermore if you use the no_pattern optional argument, you will also hava a problem. However, I think that the option-argument has the potential of being quite usefull, and the no_pattern-argument is probably only for people getting really deep into the internals of GiNaC, so I really think this is the correct order. Note that further additions to the subs-method would go into new subs_options, so that further breaking of the interface will not be necesary. However, for this reason, I guess this patch should not be included until the 1.1 release. I do not know whether diff -c -r --exclude=CVS is the most convenient format for a patch for you. If this is going to take you hours to do the patching, I will be happy to send some other format. Greetings, Chris Dams