
Several hundred people have been killed since September The United Kingdom has warned a UK company against recruiting mercenaries to work in Ivory Coast . Foreign Secretary Jack Straw said such an enterprise would seriously undermine the Ivorian peace process . He said he was gravely concerned at reports that Northbridge Services Group - a security company - was recruiting ex-servicemen from Britain , South Africa and France . But a release denied that they were a mercenary firm . " This contract was to provide humanitarian support and increased governmental security " , the statement said . Services the company website says it offers , includes demilitarisation of warring factions , mine clearance , and special forces to counter terrorists and narcotics . Cabinet meeting Mercenaries from eastern Europe , South Africa and Angola have been accused of fighting on the side of the government since September 's military uprising against the government of President Laurent Gbagbo . IVORY COAST CONFLICT Hundreds killed More than a million displaced 3,000 French peacekeepers Nation divided in two Power sharing deal still to work New role for mercenaries A peace agreement was signed in January and a power-sharing government has been named . The rebels have so far refused to attend cabinet meetings citing security concerns but now say they will be present at Thursday 's meeting . The government has denied claims this week by the opposition Le Patriote newspaper that it has hired 1,000 South Africans to fight on its side . Reuters news agency quotes diplomats in Ivory Coast as saying that they have heard of the hiring of 300 fresh mercenaries . " Any deployment of foreign military units at this time would seriously undermine the peace process and the efforts of the UK and the wider international community , " Mr Straw said . But Northbridge says Mr Straw 's comments " come as a great surprise when it was he that strongly supported the use of private military companies in a office Foreign and Commonwealth Office " . document . Ivory Coast , the world 's largest cocoa producer , is now a divided country with the three groups of rebels controlling the north and a big part of the west of the country . The government controls the rest , including the economic capital Abidjan and the main capital Yamoussoukro . 