Stefan, I've prepared a patch that fixes most of the problems you found with my commit. I also fixed the case where a rectangle was dragged to its exact current location, the operation was not being marked as negligible and the result was that both the original and inserted rectangles where being deleted. Although this patch tidies up mouse-drag-and-drop-region, the problem of always treating noncontiguous regions as rectangles still remains. I have limited experience writing Emacs Lisp so I am not sure what the options are to solve this, but I'm interested in participating in the process of thinking/implementing a solution. Thanks.