umm you think the problem was caused by using -debug in start up? would have been nice to have know in september when the problem was first showing up 
Assertions are a feature of the programming language: they will cause the program to terminate ("crash") when a certain condition is met in the code. This is used for testing/fixing ("debugging") code: the idea is that the conditions that cause the program to terminate should never be true, so that, if they are, the programmer knows that there is a fault and that it needs to be fixed.
Because of their function, assertions only work in debug mode. When debug mode is not defined, assertions are ignored. This may mean that some subtle error is occurring that cannot easily be traced (or not, depending on whether the assertion was aptly set), but the program will not crash for an assertion failure.
Also, depending on your makefiile settings, you may well find that a non-debug build is faster than a debug build - are you using optimisations, for example? For an actual game on a server (i.e. where the idea of the server is to play, not to test), I do recommend using release rather than debug builds.