diff --git a/modules/block/block.js b/modules/block/block.js
index b722d30df01cdcefe0076a1f50dc99ccddd4ceef..34c04d2460c6902945b95aeff472f06947c323cf 100644
--- a/modules/block/block.js
+++ b/modules/block/block.js
@@ -25,7 +25,9 @@ Drupal.behaviors.blockDrag = {
     // Add a handler so when a row is dropped, update fields dropped into new regions.
     tableDrag.onDrop = function () {
       dragObject = this;
-      var regionRow = $(dragObject.rowObject.element).prev('tr').get(0);
+      // Use "region-message" row instead of "region" row because
+      // "region-{region_name}-message" is less prone to regexp match errors.
+      var regionRow = $(dragObject.rowObject.element).prevAll('tr.region-message').get(0);
       var regionName = regionRow.className.replace(/([^ ]+[ ]+)*region-([^ ]+)-message([ ]+[^ ]+)*/, '$2');
       var regionField = $('select.block-region-select', dragObject.rowObject.element);
       // Check whether the newly picked region is available for this block.