OK I've been testing by commenting out everything in my user template files and here is what I have come up with...
If I have this code in any of my user template files, it breaks and does not display the full template file:
$results_nav = $mycustomdbclass_db->GetAll("SELECT blah FROM blah WHERE blah ORDER BY disp_order ASC");
BUT, only when this function is called do I have a problem:
message($lang_prof_reg['Pass not match']);
WHEN this function is called it is OK (and does the redirect I was talking about):
message($lang_profile['Pass updated'], true);
Is my line of code out of scope somehow when the message function is called without the true parameter?
P.s. Yes "$mycustomdbclass_db" is intentional - I am using my own DB class for these calls, which works everywhere on punbb except with the message function as shown above.