diff -aur ginac-1.3.7.orig/ginac/idx.cpp ginac-1.3.7/ginac/idx.cpp
--- ginac-1.3.7.orig/ginac/idx.cpp	2007-01-31 23:27:38.000000000 +0100
+++ ginac-1.3.7/ginac/idx.cpp	2007-07-02 12:37:51.000000000 +0200
@@ -37,6 +37,7 @@
 GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(idx, basic,
   print_func<print_context>(&idx::do_print).
   print_func<print_latex>(&idx::do_print_latex).
+  print_func<print_csrc>(&idx::do_print_csrc).
   print_func<print_tree>(&idx::do_print_tree))
 
 GINAC_IMPLEMENT_REGISTERED_CLASS_OPT(varidx, idx,
@@ -161,6 +162,24 @@
 	c.s << "}";
 }
 
+void idx::do_print_csrc(const print_csrc & c, unsigned level) const
+{
+	c.s << "[";
+
+	if (is_a<numeric>(value)) {
+		numeric n = ex_to<numeric>(value);
+		
+		if (n.is_integer())
+			c.s << n.to_int();
+		else
+			value.print(c);
+	}
+	else
+		value.print(c);
+
+	c.s << "]";
+}
+
 void idx::do_print_tree(const print_tree & c, unsigned level) const
 {
 	c.s << std::string(level, ' ') << class_name() << " @" << this
diff -aur ginac-1.3.7.orig/ginac/idx.h ginac-1.3.7/ginac/idx.h
--- ginac-1.3.7.orig/ginac/idx.h	2007-01-31 23:27:38.000000000 +0100
+++ ginac-1.3.7/ginac/idx.h	2007-07-02 11:05:59.000000000 +0200
@@ -96,6 +96,7 @@
 protected:
 	void print_index(const print_context & c, unsigned level) const;
 	void do_print(const print_context & c, unsigned level) const;
+	void do_print_csrc(const print_csrc & c, unsigned level) const;
 	void do_print_latex(const print_latex & c, unsigned level) const;
 	void do_print_tree(const print_tree & c, unsigned level) const;
 
