diff --git a/modules/block/block.js b/modules/block/block.js
index acd3f5a..7461be5 100644
--- a/modules/block/block.js
+++ b/modules/block/block.js
@@ -115,13 +115,21 @@ Drupal.behaviors.blockDrag = {
         // Make our new row and select field.
         var row = $(this).closest('tr');
         var select = $(this);
-        tableDrag.rowObject = new tableDrag.row(row);
+        tableDrag.rowObject = new tableDrag.row(row[0]);
 
         // Find the correct region and insert the row as the last in the region.
-        table.find('.region-' + select[0].value + '-message').nextUntil('.region-message').last().before(row);
+        var region_message = table.find('.region-' + select[0].value + '-message');
+        var region_items = region_message.nextUntil('.region-message, .region-title');
+        if (region_items.length) {
+          region_items.last().after(row);
+        }
+        // We found that region_message is the last row.
+        else {
+          region_message.after(row);
+        }
 
         // Modify empty regions with added or removed fields.
-        checkEmptyRegions(table, row);
+        checkEmptyRegions(table, tableDrag.rowObject);
         // Remove focus from selectbox.
         select.get(0).blur();
       });
