modifier. The bug was caused by an endless loop in the Array modifier's calc_mapping function. The loop worked under the assumption that there could not be sets of vertices such that (for example) vertex A merges with vertex B and vertex B merges with vertex A. As it turns out, this situation is possible, so the loop got stuck going from A to B to A to B ad infinitum. This commit fixes the problem by limiting the number of loop iterations with the copy number for which the mapping is being calculated. This should also give more correct results in general.