hey,
what i do when I'm having trouble finding a fault in a batch file is to first remove or 'rem' out the @echo off line so you can see each command run.
I also like to add pauses and a brief description at every step.
ie,
:menu
echo just got to main menu
pause
and so on.
another good tip is to run your batch file from a command prompt, that way unless you have exit at the end the window will remain open allowing to you see the last command that was run.
I don't have .dll to register myself and so can't replicate the fault.
I hope this has been of some help to you.
Blastman