
Southern African countries are set on a collision course with conservationists over an almost total ban on international trade in elephant ivory . Zimbabwe , Botswana and Namibia intend to press for the eight-year-old ban to be overturned at the 10th full meeting of the Convention on International Trade in Endangered Species of Fauna and Flora ( CITES ) , to be held in Zimbabwe 9-20 June . All three will claim that , with the region 's elephant population now restored to over 150,000 and rising , there is no ironclad reason for barring them from profiting once more by the trade . Their dissent comes amid claims that legitimate conservation concerns have been hijacked by animal rights activists . And it will focus attention on a world-wide rash of " park wars " , arising from moves by former inhabitants to reclaim the right to hunt , farm and occupy customary homelands fenced off for wildlife or habitat conservation . Western-style conservation has , according to many of its practitioners , become increasingly hard to justify in the face of such disputes . On the plains of Africa , in the tiger reserves of Asia and the rainforests of South America , hunters have been outlawed as poachers and themselves hunted down . Suspicion is growing , too , that repressive governments are using conservation as an excuse for land-grabbing . Some observers believe that a new conservation scenario is slowly emerging from such clashes , in which people rediscover ways to live in harmony with wildlife , rather than be totally separated from it . They reason that wildlife has a rightful economic as well as biological and cultural value . The more that economic value can be harnessed to aid local communities , the greater the likelihood that conservation will be successful . Advocates of this pragmatic approach include a former head of the World Conservation Union ( IUCN ) . They picture a 21st century in which national parks and nature reserves as we know them could all but disappear . Instead , protected areas would become commonly owned resources managed so that local people earn material benefits from the wildlife in their midst , by harvesting meat , ivory and other wild produce , and by claiming revenues from safari tourism and controlled trophy hunting . The debate over ivory goes to the heart of how wildlife in developing countries can best be preserved : by sustainable and profitable use , or by protection behind the fences and armed game warden patrols of National Parks . There are many local voices calling for national responses to national problems . They claim that CITES is a ' sledge-hammer to crack a nut ' . But its defendants say that on the whole it is working , and that there are few alternatives . 