
Letter dated 5 March 2002 from the Permanent Representative of Lebanon to the United Nations addressed to the Secretary-General On instructions from my Government and further to my letter dated 19 February 2002 refuting the allegations and fabrications contained in Israel 's letter of 17 January 2002 ( A/56/778-S/2002/79 ) , I have the honour to call your attention to the following : On 9 February 2002 Italy 's ambassador was asked about his country 's attitude to Israel 's media war against Lebanon . He replied : “ I believe it to be a succession of rumours that Israel is circulating about Lebanon . One of these rumours is clearly risible , namely the assertion that the Bekaa valley is serving as a base for extremists arriving from the al-Qa`idah organization , as also is Israel 's claim that the Bekaa contains camps and harbours fundamentalists coming from Afghanistan or other places . I say this is laughable , because the Bekaa is not like Baluchistan or Afghanistan . The Bekaa is a small place where everyone , including me , knows everything . I could act as a guide and take people into the Bekaa to see where members of al-Qa`idah could hide . It is impossible to hide in the Bekaa . It is actually funny to hear such things saidThere is a battle going on in the world . These are empty words that have been published in a few newspapers without people knowing what they are talking about . The situation in the Bekaa is perfectly clear . ” On 8 February 2002 the Washington correspondent of the Lebanese newspaper Al-Safir reported that United States government sources had denied that there was any truth to the claims of Israeli officials that elements of al-Qa`idah , which was founded by Usama bin Laden , had arrived in Lebanon from Afghanistan . They had also stated that the assertion of Israeli Minister for Foreign Affairs Shimon Peres that elements of the Iranian Revolutionary Guard had been deployed in Lebanese territory was groundless . Official sources have said that Israel 's allegations were made in the context of its political and media campaign to mobilize American and international support against Iran and Hizb Allah , a campaign that has benefited greatly from the political and moral momentum created by the charges made by President George W. Bush concerning what he termed the danger from the countries of the “ axis of evil ” consisting of Iran , Iraq and North Korea . Highly placed American sources have said that they do not exclude the possibility that there have been attempts by al-Qa`idah elements fleeing Afghanistan after the recent collapse of the Taliban regime to return to their countries of origin , especially those still in possession of legal documentation . They add : “ There have perhaps been Lebanese nationals among them , but we do not know that for sure . There can be no doubt , however , that there has been no appreciable organized return of al-Qa`idah elements to Lebanon ” . The same sources spoke with evident confidence of the absence of any elements of the Iranian Revolutionary Guard in Lebanon . They stated that there was absolutely no truth in the allegations made , and they hastened to say that it would be relatively easy to verify that fact . The American sources explained the reluctance of Secretary of State Colin L. Powell to deny the allegations directly by saying that he does not wish to create an open crisis with Israel , given that such a public denial would have the appearance of accusing the Israelis of lying . I should be grateful if you would have this letter circulated as a document of the General Assembly , under agenda item 42 , and of the Security Council . ( Signed ) Sélim Tadmoury Ambassador Permanent Representative 