A Perth thief who has lived a life of crime has clocked up his 140th offence.

Infamous criminal David McGregor has now been jailed for a year after stealing perfume from TK Maxx in the city.

He was also caught stealing ten T-shirts from Gap in Perth High Street and a phone from Game as he racked up his 138th and 139th offences.

McGregor was previously in the media spotlight after being caught when an X-ray showed a jewel haul in his stomach.

Solicitor Paul Ralph, defending, said McGregor, 44, was getting too old to carry on a life of committing hapless crimes in a bid to feed his drug habit.

Mr Ralph said: "He is not in good health. He is at an age now where he knows he cannot continue like this. His body is going to give up on him if he continues.

"He is annoyed with himself, but he knows his fate. There is only one disposal open to the court with his record."

Perth Sheriff Court was told McGregor was so well known as a shoplifter that store staff recognised him and he was easily identified on CCTV.

He admitted stealing from Gap on July 30 last year, Game on February 21 and TK Maxx on March 7 this year, and was jailed him for 12 months by Sheriff Lindsay Foulis.

The court was told McGregor's list of previous criminal convictions was so long it needed to be "weighed" rather than counted.

Mr Ralph said: "You will see from the weight of the record that he has been battling long against a drug problem."

McGregor, from Crieff, was also previously jailed for 135 days after he was recognised by Boots staff and seen stealing £600 worth of sunglasses.

He was also jailed for 145 days for threatening a member of court staff who refused to make him a cup of tea.