------------- jquery_update/replace/tabledrag.js -------------
index a64b9a7..73a8a11 100644
@@ -110,10 +110,10 @@ Drupal.tableDrag.prototype.hideColumns = function(){
     }
 
     // Hide the column containing this field.
-    if (hidden && cell[0] && cell.css('display') != 'none') {
+    if (hidden && cell[0] && !cell.hasClass("hideColumns-processed")) {
       // Add 1 to our indexes. The nth-child selector is 1 based, not 0 based.
       var columnIndex = $('td', cell.parent()).index(cell.get(0)) + 1;
-      var headerIndex = $('td:not(:hidden)', cell.parent()).index(cell.get(0)) + 1;
+      var headerIndex = $('td:not(".hideColumns-processed")', cell.parent()).index(cell.get(0)) + 1;
       $('tr', this.table).each(function(){
         var row = $(this);
         var parentTag = row.parent().get(0).tagName.toLowerCase();
@@ -134,7 +134,7 @@ Drupal.tableDrag.prototype.hideColumns = function(){
           else {
             // Hide table body cells, but remove table header cells entirely
             // (Safari doesn't hide properly).
-            parentTag == 'thead' ? cell.remove() : cell.css('display', 'none');
+            parentTag == 'thead' ? cell.remove() : cell.css('display', 'none').addClass('hideColumns-processed');
           }
         }
       });

