Now it's way better (r2802). But it only works if I set the class via the console variable "playerclass". Then I begin new game and the class is correct (the same I'd typed before).
But if I select the class via the player setup menu, and then (re)start the game, the class is set to the one which is positioned before the selected one in the class list (with some exceptions if the class is the first or last one in the list).
For example, there classes C1, C2, C3, Random (which is implicit).
If I choose class C1, I'll play as C2 (this is the exception I'd mentioned before).
If I choose class C2, I'll play as C1.
If I choose C3, I'll play as C2.
The "Random" option works as intended.
The above information is based on my observations and may not be 100% accurate. However, the class selection in the player setup menu really doesn't work right.
All the classes are added via KEYCONF and have "nomenu" option.
If you want to test it, run AEoD.