Phil - I wonder if maybe my notes in bug [#160] will fix your remaining issues, since...
Z not set to 0 when new intersection point calculated, and missed SetZ() in newer code