see: http://drupal.org/node/300084 Anything dragged to the very top will not stick. This happens because siblingWeightFieldUp[0] ends up as undefined and then javascript stops processing the rest of the code because the siblingWeightFieldUp[0].value fails. diff -Nurp ../cck.orig/modules/fieldgroup/fieldgroup.tabledrag.js ./modules/fieldgroup/fieldgroup.tabledrag.js --- ../cck.orig/modules/fieldgroup/fieldgroup.tabledrag.js 2010-05-24 09:51:44.000000000 -0500 +++ ./modules/fieldgroup/fieldgroup.tabledrag.js 2010-05-24 09:51:54.000000000 -0500 @@ -53,9 +53,11 @@ Drupal.tableDrag.prototype.onDrop = func if (siblingIndent == indents) { //the previous row is a sibling, so let's set the new weight var siblingWeightFieldUp = $('input.field-weight', siblingRowUp); - var siblingWeightUp = siblingWeightFieldUp[0].value; - var newWeight = parseInt(siblingWeightUp) + 1; - $('input.field-weight', tableDragObject.rowObject.element).val(newWeight); + if (siblingWeightFieldUp[0] != undefined){ + var siblingWeightUp = siblingWeightFieldUp[0].value; + var newWeight = parseInt(siblingWeightUp) + 1; + $('input.field-weight', tableDragObject.rowObject.element).val(newWeight); + } //now deal with the case where we moved left/right if (oldClass != newClass) {