diff --git a/lib/modules/ADT.pmod/Table.pmod b/lib/modules/ADT.pmod/Table.pmod
index a3322511cc5e395ef37be272b94ac07cc0e06404..e1f775a39bc21a2c91c295754943aea4f97deba5 100644
--- a/lib/modules/ADT.pmod/Table.pmod
+++ b/lib/modules/ADT.pmod/Table.pmod
@@ -86,7 +86,9 @@ class table {
 
   int `==(object t)
   {
-    return equal(fields, indices(t)) && equal(table, values(t));
+    return (equal(Array.map(fields, lower_case),
+		  Array.map(indices(t), lower_case)) &&
+	    equal(table, values(t)));
   }
 
   object append_bottom(object t)
@@ -193,7 +195,7 @@ class table {
   {
     if(!sizeof(cs))
       return sum();
-    array f = Array.map(fields, lower_case) - Array.map(cs, lower_case);
+    array f = remap(fields) - remap(cs);
     mapping m = mkmapping(f, Array.map(f, lambda()
 					  { return lambda(mixed x1,
 							  mixed x2)