As I have no mean to test, could you try that:
Delete the last modifications so that now you just have
PHP Code:
AND $forum['showsign']
instead of
PHP Code:
AND ($forum['showsign'] OR THIS_SCRIPT=="private")
And before
PHP Code:
// get signature
if ($post['showsignature'] AND ...
Add
PHP Code:
if(THIS_SCRIPT=="private")
$forum['showsign']=1;
But I still find it strange so I hope this will fix