The Philippine military said on Sunday it had recovered the body of an elderly German hostage who was beheaded by Islamic militants last week.
The Abu Sayyaf, a kidnap-for-ransom network in the southern Philippines that has pledged allegiance to the Islamic State group, killed Jurgen Kantner, 70, after its demands for 30 million pesos ($600,000) were not met.
Military officials said marines found Kantner's body on Saturday evening in the militants' remote island stronghold of Sulu, more than 1,000 kilometres (600 miles) south of Manila.
"The Armed Forces of the Philippines continues with all efforts to make good (on) its commitment to return the remains of the kidnap victim to his homeland to accord to him the decent burial he deserves," said military spokesman Colonel Edgard Arevalo.
Kantner's vessel, the Rockall, was found drifting on November 7 off the southern Philippines with the body of his female companion, Sabine Merz, who had been shot. The Abu Sayyaf claimed the kidnapping.
Kantner's remains are in a military hospital morgue in Sulu while officials are preparing documents to transport the body, authorities said.
Philippine President Rodrigo Duterte apologised on Tuesday for failing to save Kantner and said the military had stepped up operations against the militants.
Troops have clashed with the Abu Sayyaf in recent days, leaving 18 soldiers injured and 14 militants dead, according to the military which has been unable to recover their bodies.
The Abu Sayyaf, established with seed money from Osama bin Laden's Al-Qaeda network, have been kidnapping foreigners and locals for decades and holding them for ransom.
They are believed to still hold at least 19 foreigners and six Filipino hostages.
Blamed for the nation's worst terrorist attacks, the Abu Sayyaf has used the support of local communities, millions of dollars in ransom and collusion with corrupt local officials to defy decades of military operations.