The co-pilot of an Ethiopian Airlines plane flying from Addis Ababa to Rome has been arrested after hijacking the aircraft and flying it to Switzerland.
The hijacker, identified by officials as Hailemedehin Abera Tagegn, waited for the pilot to go to the toilet before locking himself in the cockpit.
He was unarmed and, after landing at Geneva airport, said he was requesting asylum in Switzerland.
The airline said all 202 passengers and crew were safe.
Geneva airport was closed for a time but has since reopened.
Flight 702 was scheduled to leave the Ethiopian capital, Addis Ababa, at 00:30 local time (21:30 GMT) and arrive in Rome at 04:40 local time.
But at some point during the flight, the co-pilot locked his colleague out of the cockpit and took over the plane.
He radioed Geneva to request permission for an emergency refuelling, before setting off an alarm indicating that the plane had been hijacked.
Passengers have said he threatened to crash the plane.
Two Italian fighter jets and then French jets were scrambled to escort the plane as it crossed Europe.
The Boeing 767-300 eventually made its unscheduled landing at 06:00 local time.
"He parked the plane on the taxiway, he cut the engines then opened the cockpit window, threw out a rope and used it to descend to the tarmac," said Swiss police spokesman Eric Grandjean.
"He ran towards the police and immediately identified himself as the co-pilot and hijacker."
Passengers were able to leave the plane about an hour later. They were all searched twice and questioned by police in case any were accomplices before being allowed to finish their journeys.
Police said there was no risk at any time to those on board, but some passengers have spoken of their fear.
"The pilot was threatening to open the cockpit door and tried to knock it down without succeeding," one passenger, Francesco Cuomo, told Italy's Ansa news agency.
"A message was transmitted by the loudspeakers in poor English, but the threat to crash the airplane was clearly understood," he said.
"When we started circling above Geneva, we were really afraid."
Police said at a news conference in Geneva that the man had sought asylum due to fear of persecution in Ethiopia.
But he could now be charged with hostage-taking, and faces up to 20 years in prison.
"Technically there is no connection between asylum and the fact he committed a crime to come here," said Geneva prosecutor Olivier Jornot.
"But I think his chances are not very high."
At a news conference in Addis Ababa, Information Minister Redwan Hussein said the co-pilot had worked for Ethiopia Airlines for five years, had no criminal record and was "medically sane until otherwise proven".
He said Ethiopia would seek his extradition.
"His action represents a gross betrayal of trust that needlessly endangered the lives of the very passengers that a pilot is morally and professionally obliged to safeguard," said Mr Redwan.
This incident is a blow to Ethiopia Airlines, which has long prided itself as one of the continent's best performing carriers, says BBC Addis Ababa correspondent Emmanuel Igunza.
The last hijacking to take place at Geneva airport was that of an Air Afrique plane in 1985.
In 1996, an Ethiopian Airlines flight was hijacked by three Ethiopians who wanted to claim asylum in Australia. It ran out of fuel and crashed into the Indian Ocean near the Comoros islands, killing 125 of the 175 people on board.