I actually got an answer from my ISP support!
They have register_globals set to off so my code needed to be amended from:
if (isset($page_title):
$title=urldecode($page_title);
to:
if (isset($_GET['page_title'])):
$title=urldecode($_GET['page_title']);
see http://www.php.net/manual/en/security.registerglobals.php
Keith