Peter Capaldi delighted fans during a marathon charity signing session.

The former Doctor Who star spent nine hours meeting 500 fans in Edinburgh over the weekend, stopping only once for a 15-minute break. 

Capaldi was appearing at Capital Sci-Fi Con, a not-for-profit sci-fi, movie and pop culture event which raises money Children’s Hospices Across Scotland (CHAS). 

Donating his entire autograph fee to CHAS, the actor stayed an hour after the convention had closed on Saturday to meet fans who had queued to see him.

He even treated fans to a rendition of David Bowie's Star Man on the guitar.

Other from the weekend include special appearances from Star Wars and Harry Potter star Warwick Davis and Scottish comics talent like Frank Quitely and Gary Erskine.

Laura Campbell, Senior CHAS Community Fundraiser, said: “Keith and his team of ‘causeplayers’ are a phenomenal group of fundraisers. Through their infectious passion for all things sci-fi and giving back to the community, over the years they’ve managed to raise over £187,000 for CHAS. The total raised from this weekend is still being counted, but we expect it to top last year’s £74,000.

Read more: Doctor Who's Peter Capaldi: I'd use Tardis to travel to David Bowie Ziggy Stardust concert

“We can’t thank Keith and the ‘causeplayers’ enough for their support. We simply couldn’t do the work we do without them and the rest of our passionate and committed supporters who are helping us on our mission of reaching every child in Scotland with a life-shortening condition.”

All profits raised by Capital Sci-Fi Con are donated to CHAS - the only charity in Scotland that provides hospice services for babies, children and young people with life-shortening conditions.

The national charity offers palliative care and respite for the whole family via its two hospices, Rachel House in Kinross and Robin House in Balloch. Its CHAS at Home service supports families in their own homes across the whole of Scotland and has teams working in communities and hospitals across the country.