Sir Elton John has admitted to having sex with a Russian spy on a hotel roof during a trip to the Soviet Union.

The 66-year-old singer believes that the KGB spy was planted in his entourage by the country's secret police at the height of the Cold War to follow his every move.

He says that after discovering that the man was a mole who worked for the Russian security agency, he slept with him to compromise him.

"I went to Russia in 1979 and I knew we were being watched all the time," John told the Observer.

"I had an interpreter that they'd clearly set up. I ended up having sex with him on the hotel roof."

John became the first Western popstar to perform behind the Iron Curtain when he took to the stage in St Petersburg, formerly Leningrad, in 1979.

In 1985, The Rocket man released Nikita, a song about a westerner who falls for a Berlin border guard. The track, which featured George Michael, was a worldwide hit.

John is returning to Russia in December to take part in the protests against Putin's anti-gay laws.

The openly gay star, however, admits that he is a little apprehensive about lending his support to the campaign.

He said: "I've got to go. And I've got to think about what I'm going to say very carefully.

"There are two avenues of thought: do you stop everyone going, ban all the artists coming in from Russia?

"But then you're really leaving the men and women who are gay and suffering under the anti-gay laws in an isolated situation.

"As a gay man, I can't leave those people on their own without going over there and supporting them. I don't know what's going to happen, but I've got to go."