Your rubout key generates ^H but your erase character is set to something else, most likely ^?, thus the ^H is just an unhandled control character.
Possible solutions are setting the erase char to ^H (stty erase ^H) or figuring out why your rubout key generates ^H and fixing that.
> Backspacing works fine in the shell, though.
You don't say what shell you're using, but most likely it's bash or tcsh which treat both ^H and ^? as rubout characters by default.
documented on: 04-19-99 22:07:46