Ok fixed it. Very random error.
In my functions.php i had the following code
$p = array(
'before_widget' => "\n\t\t\t" . '<li id="%1$s" class="widget %2$s"><div class="inner">',
'after_widget' => "\n\t\t\t</div></li>\n",
'before_title' => "\n\t\t\t\t". '<h3 class="widgettitle"><span>',
'after_title' => "</span></h3>\n"
);
if (function_exists('register_sidebars')){
register_sidebars(1, $p);
}
Note the $p, that must have been overwriting something in WordPress as once i’d changed that to $args everything worked perfectly.
Phew!