malkion: Thanks

It's fast too, even when moving a lot of items. Favorites, as far as I know, aren't currently checkable. For weapon stashing, something like...
aiListIndex = (akCurrentList.GetSize() - 1) While (aiListIndex > -1) akCurrentForm = akCurrentList.GetAt(aiListIndex) As Weapon If akDonor.IsEquipped(akCurrentForm) ; akDonor As Actor If akDonor.GetEquippedWeapon() == akCurrentForm ; Right hand If akDonor.GetEquippedWeapon(True) == akCurrentForm ; Left & right hand akDonor.RemoveItem(akCurrentForm, akDonor.GetItemCount(akCurrentForm) - 2, True, akRecipient) EndIf ElseIf akDonor.GetEquippedWeapon(True) == akCurrentForm ; Left hand akDonor.RemoveItem(akCurrentForm, akDonor.GetItemCount(akCurrentForm) - 1, True, akRecipient) EndIf Else akDonor.RemoveItem(akCurrentForm, akDonor.GetItemCount(akCurrentForm), True, akRecipient) EndIf If Player.GetItemCount(akCurrentList) aiListIndex -= 1 Else aiListIndex = -1 EndIf EndWhile
...should work (still working on it). That's a snippet from the same Sort() function that only fires if stashing weapons and it takes awhile, but doesn't remove equipped items. Apparel's easier 'cause there can be only one of any given item equipped.
Thought: 'While' loops seem to try to resolve themselves as quickly as possible. When my bag is sorting with a loop, it blinks in the inventory screen once per loop for some reason and, after overclocking my CPU, it's blinking noticeably faster as though there's no preset interval and the code will iterate as quickly as it can.