Hmm, definitely odd behavior and I'll need to study it more in depth. As a temporary solution, this should override it by detecting the switch into partial when Autocheck = False, then advancing it to cleared. This won't work if ExclusionChecks = True.

In ShellTreeSubclassProc, go to the handler for TVM_ITEMCHANGEDW, change:

Code:
                ElseIf ((nmtvic.uStateNew And TVIS_STATEIMAGEMASK) = &H3000) And (mAutocheck = False) Then
                    DebugAppend "ItemExclude"
                    TVEntries(nmtvic.lParam).Checked = False
                    TVEntries(nmtvic.lParam).Excluded = True
to

Code:
                ElseIf ((nmtvic.uStateNew And TVIS_STATEIMAGEMASK) = &H3000) And (mAutocheck = False) Then
                    DebugAppend "ItemExclude"
                    If mExCheckboxes Then
                        TVEntries(nmtvic.lParam).Checked = False
                        TVEntries(nmtvic.lParam).Excluded = True
                    Else
                        SetTVItemStateImage nmtvic.hItem, tvcsEmpty
                    End If