diff --git a/app/escriptorium/static/js/baseline.editor.js b/app/escriptorium/static/js/baseline.editor.js
index 9606e3e50fa668a3c1ddfee976a8217d68c95221..56b36b8a11fdb6a27c729372564b6a90a95ceed4 100644
--- a/app/escriptorium/static/js/baseline.editor.js
+++ b/app/escriptorium/static/js/baseline.editor.js
@@ -1177,6 +1177,16 @@ class Segmenter {
     onMouseDown(event) {
         if (isRightClick(event.event)) return;
         if (this.selecting) {
+            if (this.mode == 'regions') {
+                // if what we are selecting is already selected, check there isn't something below
+                for (let i=0; i<this.regions.length; i++) {
+                    if (this.selecting.selected && this.regions[i] != this.selecting) {
+                        let hit = this.regions[i].polygonPath.hitTest(event.point);
+                        if (hit) this.selecting = this.regions[i];
+                        break;
+                    }
+                }
+            }
             // selection
             if (event.event.shiftKey) {
                 this.selecting.toggleSelect();