Hi, I am working on a problem that requires manipulation and differentiation of large numbers of Lie derivative operators, followed by collecting coefficients of like orders of the operators. Since Ginac does not currently seem to be able to handle this, I have added a (fairly horrible) hack to the Symbol class to to make a Symbol behave as a differential operator under certain circumstances. In outline, what I did was: If the label for a newly defined symbol is "D" then give that symbol a fixed serial number which is identical for every operator defined. For symbols which are operators, keep track of the symbols with respect to which it is differentiating in an ordered vector. Symbols passed to the derivative method are inserted into the vector. Modified the compare_same_type method so that two operator symbols are compared by comparing the contents of their associated vectors of symbols. Modified the printing to print out something like 'D[x x y]' for a third order operator. Limitations: Currently the operators do not 'act' on anything - I assume this would require modification of the mult class and carefull consideration of ordering in expressions. I don't need this functionality, so I haven't looked into it. It may well be much better to have a new class derived from Symbol, but I'm new to Ginac (and was in a hurry!) and wasn't sure what this would do to comparisons between Symbols and Operators, so I went the 'quick and dirty' route. I think perhaps the general concept may be of use to other people, but my modifications are far to sloppy to be incorporated into the main code. I would be interested to know what other people think about the general idea of extending Ginac properly in this direction. Regards, Will