Index: bridges.c =================================================================== --- bridges.c (revision 8764) +++ bridges.c (working copy) @@ -2097,7 +2097,7 @@ if (button == LEFT_BUTTON || button == RIGHT_BUTTON) { if (!INGRID(state, gx, gy)) return NULL; ui->cur_visible = 0; - if ((ggrid & G_ISLAND) && !(ggrid & G_MARK)) { + if ((ggrid & G_ISLAND)) { ui->dragx_src = gx; ui->dragy_src = gy; return ""; @@ -2606,7 +2606,8 @@ force = 1; } - if (ui->dragx_src != -1 && ui->dragy_src != -1) { + v = INGRID(state,ui->dragx_src,ui->dragy_src) ? GRID(state,ui->dragx_src,ui->dragy_src) : 0; + if (ui->dragx_src != -1 && ui->dragy_src != -1 && !(v & G_MARK)) { ds->dragging = 1; is_drag_src = INDEX(state, gridi, ui->dragx_src, ui->dragy_src); assert(is_drag_src);