Holy crap that stack overflow was the compilers fault, weird bug.

So a const function cannot change the member variables of its class or call functions that can (non const functions).
anyway you can have overloads that are a mix of const and non-const functions which I had. The thing is that when the const overload of a function tries to call the non-const overload (something that shouldn't compile) it fucks up and calls another overload that is const. In our case this caused stack overflow