Replace chain.c32 in /isolinux and /syslinux with the new version form the syslinux archive.
Download syslinux from http://www.kernel.org/pub/linux/utils/boot/syslinux/
Extract the syslinux archive to "c:\syslinux\".
You can also update the other isolinux/syslinux files (not necessary for your problem want but they are better or should be better).
To update isolinux for the CD version
- Copy "c:\syslinux\isolinux.bin" to "c:\ubcd\isolinux\".
- Copy "c:\syslinux\com32\menu\menu.c32" to "c:\ubcd\isolinux\"
- Copy "c:\syslinux\com32\modules\chain.c32" to "c:\ubcd\isolinux\"
- Copy "c:\syslinux\memdisk\memdisk" to "c:\ubcd\isolinux\"
To update syslinux for the bootable USB key
- Copy "c:\syslinux\ldlinux.sys" to "c:\ubcd\syslinux\".
- Copy "c:\syslinux\mbr\mbr.bin" and "c:\syslinux\ldloader.bss" to "c:\ubcd\tools\ubcd2usb\".
- Copy "c:\syslinux\com32\menu\menu.c32" to "c:\ubcd\syslinux\"
- Copy "c:\syslinux\com32\modules\chain.c32" to "c:\ubcd\syslinux\"
- Copy "c:\syslinux\memdisk\memdisk" to "c:\ubcd\syslinux\"
I am not sure if the paths in this tutorial are still correct, I made this tutorial for another version of syslinux.
Version 3.70 of syslinux contains a lot of improvements of chain.c32
* chain.c32: option "swap" to support swapping of BIOS drive numbers. This is necessary to boot certain operating systems (DOS, Windows) from a secondary drive.
* chain.c32: option "file=" to support loading a boot file from the SYSLINUX filesystem instead of loading the boot sector from the drive.
* chain.c32: option "seg=" to control the load location.
* chain.c32: option "ntldr=" as a shorthand for "seg=0x2000 file="; use this to load one of WinNT's loaders:
chain.c32 hd0 1 ntldr=/MiniNT/setupldr.bin
Note that the file needs to be in the SYSLINUX filesystem.
* chain.32: options "freedos=" and "msdos="/"pcdos=" as shorthands for "seg=0x60 file=" and "seg=0x70 file=" respectively; use this to load FreeDOS's kernel.sys, MS-DOS's io.sys or PC-DOS's ibmbio.sys.
* chain.c32: support "boot" as the drive specification, indicating the drive from which it was booted (for syslinux/extlinux).
* SYSLINUX/EXTLINUX: support "localboot" with the same feature set as ISOLINUX.
* chain.c32: fix booting from logical partitions (Sergey Vlasov.)
You can also try the last beta of ubcd5, which has the last syslinux files already.
The syslinux site: