Can you reproduce the error on demand?

In the sptGetHitTest() routine, m_HitTestPts array should already be filled and is tested when the HitTest property is either lvicEntirelImage or lvicTrimmedImage, control is enabled (default), has a picture assigned, and mouse events are wanted (default). The sptGetHitTest() routine is called when mouse is over the control or releasing the mouse button during a click/drag event.

Each time the hit test should be recalculated, the m_RenderFlags is updated to include the bit: render_DoHitTest. This is triggered in a couple of events: Paint, changing the HitTest property, and WantMouseEvents property.

You can try adding this:
Code:
        If (m_RenderFlags And render_DoHitTest) Then
            If m_HitRegion = 0& Then Call sptCreateHitTestPoints(m_HitRegion)
        End If
to the sptGetHitTest() routine, immediately after the statement: If UserControl.Enabled Then

Theoretically, that could be a valid sanity check that may solve the problem. Just can't think of any combination you are using that could be causing the problem. Only thing that comes to mind is DoEvents possibly, maybe the UserControl_Hide() event not triggering (that releases the timer used to check for mouse over/leave events)