Thirty-nine-year-old Deangelo Thomas was charged Monday with second-degree murder and armed criminal action in the death of 30-year-old Floyd Epps.
Epps was found shot to death at a St. Louis park in February 1999.
The St. Louis Post-Dispatch reports charging documents indicate Thomas contacted prison officials last month and confessed to killing Epps. In a later interview with a detective, Thomas reportedly said he gave Epps money to buy him alcohol. He says he shot Epps while they argued over how much change Thomas was due.
His bail in the homicide is $500,000.
Thomas has been in prison since 2000, serving a 25-year sentence for armed robbery.