And one more thing which i missed initially: ICUEnumerationNB is a subclass of NBExternalHandle.
This class was actually done for holding a handle but not interact directly with marchalling types, and subclassing from it makes little sense actually unless you override #asNBExternalType: on class side. For this purpose there is NBExternalObject. So, i recommend you to change ICUEnumerationNB to be a subclass of NBExternalObject. The instances of NBExternalObject holding a handle in 1st inst var, and you free to add more ivars if you like (opposite to NBExternalHandle where you can't because it is a varbyte class). -- Best regards, Igor Stasenko.