Index: exec.c
==================================================================
--- exec.c
+++ exec.c
@@ -2048,11 +2048,14 @@
   // Since there may be multiple objects in a location, which move in different directions,
   // a variable "ch" mentions the next object to try, if it is VOIDLINK. If not, then once
   // it reaches the end without finding a loop, it can try the next one, resetting ch to
   // VOIDLINK. This will find not only loops, but also if there is a branch that is later
   // merged; due to what this program needs to do, and how they will be dealt with after
-  // the potential loop is found, that isn't a problem.
+  // the potential loop is found, that isn't a problem. This algorithm also will not find
+  // some loops with multiple branches, but that is also OK, since the main handling of
+  // deferred movements will eventually try every object as an origin, and this will cause
+  // the loop to eventually be found.
   static sqlite3_uint64 board[64]; // bit board for locations with possible collisions
   Object*o=objects[obj];
   Uint32 ch=VOIDLINK; // first object found in same place as other where it must be checked
   Uint8 x=o->x;
   Uint8 y=o->y;