
Commission on Sustainable Development acting as the preparatory committee for the World Summit on Sustainable Development Second session 28 January-8 February 2002 Agenda item 1 Adoption of the agenda and organizational matters Letter dated 27 January 2002 from the Permanent Representative of China to the United Nations addressed to the Secretary-General I have the honour to transmit to you herewith the position paper of China : No accreditation of the International Campaign for Tibet to the World Summit on Sustainable Development ( see annex ) . I would be grateful if you could have the present letter and its annex circulated as a document of the Commission on Sustainable Development acting as the preparatory committee for the World Summit on Sustainable Development under agenda item 1. ( Signed ) Wang Yingfan Ambassador and Permanent Representative of the People 's Republic of China to the United Nations Annex to the letter dated 27 January 2002 from the Permanent Representative of China to the United Nations addressed to the Secretary-General China 's position paper : No accreditation of the International Campaign for Tibet to the World Summit on Sustainable Development The World Summit on Sustainable Development is an international conference of crucial importance in the field of sustainable development . The Chinese Government attaches great importance to the Summit and has always been actively engaged in the preparatory process for the Summit . The Chinese Government appreciates the active role of non-governmental organizations in the field of sustainable development and welcomes their participation in and contributions to the Summit . However , the International Campaign for Tibet , as listed in the Secretary-General 's note on accreditation of non-governmental organizations and other major groups to the World Summit on Sustainable Development ( E/CN.17/2002/PC.2/16 ) , is an organization whose primary objective is to split Tibet from China . All its main activities have been conducted with a view to achieving this primary objective . Referring to decision 2001/PC/3 , adopted at the organizational session of the Commission on Sustainable Development acting as the preparatory committee for the World Summit on Sustainable Development , China firmly opposes granting accreditation to the International Campaign for Tibet to take part in the World Summit on Sustainable Development and its preparatory process . This is a matter of principle to the Chinese Government . Tibet is an inalienable part of China . This is an indisputable fact recognized by all countries in the world . However , the International Campaign for Tibet denies the fact and treats Tibet as an independent State and openly advocates that Tibet is now under “ Chinese invasion ” , “ Chinese occupation ” and even “ Chinese colonial rule ” . Maintaining sovereign territorial integrity is one of the principles enshrined in the Charter of the United Nations . It is very clear that the objective and splittist activities of the International Campaign for Tibet constitute not only an infringement upon the sovereignty and territorial integrity of China but also a violation of the purposes and principles of the Charter of the United Nations . The International Campaign for Tibet is closely associated with the so-called “ Tibetan government-in-exile ” . The “ Tibetan government-in-exile ” has for a long time devoted itself to splitting Tibet from China and it has never been recognized by any country . Ever since its establishment , the International Campaign for Tibet has been identifying itself with the position and views of the “ Tibetan government-in-exile ” . The main purpose of its activities is to spread and implement policies and schemes formulated by the “ Tibetan government-in-exile ” . The special relationship of the International Campaign for Tibet with the “ Tibetan government-in-exile ” clearly demonstrates its objective of splitting Tibet from China . China is a united multiethnic State . Equality and unity have always been the fundamental principles adopted by the Chinese Government for harmonizing relations among all Chinese ethnic groups . During the second half of the twentieth century , universally acknowledged achievements have been made in political , economic , social and cultural aspects in regions where there are large populations of ethnic minorities , including in Tibet . Out of its objective of splitting Tibet from China , the International Campaign for Tibet has been misleading the international community with all kinds of tricks . The International Campaign for Tibet turns a blind eye to all the achievements made by the Chinese Government . It has organized a series of activities against China and slandered Chinese ethnic policies using distortions and fabrications . It has also tried every means to create obstacles to hinder the economic and social development of Tibet . Moreover , although China has been giving strong and firm support to the international counter-terrorism campaign after the terrorist attacks of 11 September , the International Campaign for Tibet still wantonly makes the accusation that “ China today has established state terrorism ” . This clearly demonstrates its anti-China character . For the above-mentioned reasons , the International Campaign for Tibet should not be allowed to participate , in whatever name and under whatever pretext , in any United Nations activities . Accreditation of such an organization to the World Summit on Sustainable Development will undermine the cooperative atmosphere , normal proceedings and the ultimate success of the Summit . The Chinese Government urges the preparatory committee for the World Summit on Sustainable Development to reject the application of the International Campaign for Tibet for accreditation and calls for the understanding and support of all delegations in this regard . 