diff --git a/ginac/fderivative.cpp b/ginac/fderivative.cpp
index 9e3c981..134bf23 100644
--- a/ginac/fderivative.cpp
+++ b/ginac/fderivative.cpp
@@ -105,9 +105,9 @@ void fderivative::do_print(const print_context & c, unsigned level) const
 	auto i = parameter_set.begin(), end = parameter_set.end();
 	--end;
 	while (i != end) {
-		c.s << *i++ << ",";
+		c.s << seq[*i++] << ",";
 	}
-	c.s << *i << "](" << registered_functions()[serial].name << ")";
+	c.s << seq[*i] << "](" << registered_functions()[serial].name << ")";
 	printseq(c, '(', ',', ')', exprseq::precedence(), function::precedence());
 }
 
@@ -117,8 +117,8 @@ void fderivative::do_print_csrc(const print_csrc & c, unsigned level) const
 	auto i = parameter_set.begin(), end = parameter_set.end();
 	--end;
 	while (i != end)
-		c.s << *i++ << "_";
-	c.s << *i << "_" << registered_functions()[serial].name;
+		c.s << seq[*i++] << "_";
+	c.s << seq[*i] << "_" << registered_functions()[serial].name;
 	printseq(c, '(', ',', ')', exprseq::precedence(), function::precedence());
 }
 
@@ -132,8 +132,8 @@ void fderivative::do_print_tree(const print_tree & c, unsigned level) const
 	auto i = parameter_set.begin(), end = parameter_set.end();
 	--end;
 	while (i != end)
-		c.s << *i++ << ",";
-	c.s << *i << std::endl;
+		c.s << seq[*i++] << ",";
+	c.s << seq[*i] << std::endl;
 	for (auto & i : seq)
 		i.print(c, level + c.delta_indent);
 	c.s << std::string(level + c.delta_indent, ' ') << "=====" << std::endl;
