Spoke too soon on this one.
It seems its an endemic problem with wordpress that is simply exacerbated by a switch to PHP 5.
As it cropped up in another blog.
My host had a search around and found the real solution on this thread here:
http://wordpress.org/support/topic/120549?replies=8
Nickel kindly volunteered the following solution in that thread that worked for me on all my blogs when I implemented it.
Go to /home/yoursite/public_html/wp-includes/rss.php
On line 440 (of rss.php), change this:
if ( isset($rss) and $rss ) {
to this:
if ( isset($rss) && (is_object($rss) ||(is_string($rss) && $rss=unserialize($rss))) ) {
ie It would then look like this in the code:
//if ( isset($rss) and $rss ) {
if ( isset($rss) && (is_object($rss) ||(is_string($rss) && $rss=unserialize($rss))) ) {
That worked great.