+        nodeG = (m_GlobalProcessors) ? m_GlobalProcessors->GetFirst() : NULL;
+
+        // VS: there are two lists, global and local, both of them sorted by
+        //     priority. Since we have to go through _both_ lists with 
+        //     decreasing priority, we "merge-sort" the lists on-line by
+        //     processing that one of the two heads that has higher priority
+        //     in every iteration
+        while (nodeL || nodeG)