diff -aur ginac-1.3.7.orig/ginac/fderivative.cpp ginac-1.3.7/ginac/fderivative.cpp
--- ginac-1.3.7.orig/ginac/fderivative.cpp	2007-01-31 23:27:38.000000000 +0100
+++ ginac-1.3.7/ginac/fderivative.cpp	2007-07-10 04:14:07.000000000 +0200
@@ -31,6 +31,7 @@
 
 GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(fderivative, function,
   print_func<print_context>(&fderivative::do_print).
+  print_func<print_csrc>(&fderivative::do_print_csrc).
   print_func<print_tree>(&fderivative::do_print_tree))
 
 //////////
@@ -112,6 +113,17 @@
 	printseq(c, '(', ',', ')', exprseq::precedence(), function::precedence());
 }
 
+void fderivative::do_print_csrc(const print_csrc & c, unsigned level) const
+{
+	c.s << "D_";
+	paramset::const_iterator i = parameter_set.begin(), end = parameter_set.end();
+	--end;
+	while (i != end)
+		c.s << *i++ << "_";
+	c.s << *i << "_" << registered_functions()[serial].name;
+	printseq(c, '(', ',', ')', exprseq::precedence(), function::precedence());
+}
+
 void fderivative::do_print_tree(const print_tree & c, unsigned level) const
 {
 	c.s << std::string(level, ' ') << class_name() << " "
diff -aur ginac-1.3.7.orig/ginac/fderivative.h ginac-1.3.7/ginac/fderivative.h
--- ginac-1.3.7.orig/ginac/fderivative.h	2007-01-31 23:27:38.000000000 +0100
+++ ginac-1.3.7/ginac/fderivative.h	2007-07-10 04:12:16.000000000 +0200
@@ -74,6 +74,7 @@
 	// non-virtual functions in this class
 protected:
 	void do_print(const print_context & c, unsigned level) const;
+	void do_print_csrc(const print_csrc & c, unsigned level) const;
 	void do_print_tree(const print_tree & c, unsigned level) const;
 
 	// member variables
