As opposed to not firing at all how it should be? Just incase anyone is unclear here is how CLS is supposed to work.
This sequence of events assumes the internal flash is set to "--", and Group A is set to TTL.
1. Shutter is pressed
2. Aperture shuts
3. Onboard flash sends out a signal which tells all flashes that Group A is set to TTL and nothing else.
4. Camera's TTL meter is now on.
5. Group A fires a preflash.
6. Camera processes this information to determine the total output required for each Group.
7. Onboard flash sends out a signal which tells all flashes that Group A should fire at a the calculated power level after a specific delay.
8. Mirror flips up and shutter opens.
9. Group A fires, Onboard flash does not.
10. Shutter closes, mirror flips down and you have a preview.
The correct operation of CLS where you don't want the onboard to contribute is to set it to "--" and not M at 1/128th. If you need to set it to 1/128th to get this to work then something is wrong, either a setting, or a bug in the firmware.