
Identical letters dated 17 March 2003 from the Permanent Observer of Palestine to the United Nations addressed to the Secretary-General and the President of the Security Council The vicious military campaign being carried out by Israel , the occupying Power , against the Palestinian people in the Occupied Palestinian Territory , including East Jerusalem , continues to widen and intensify , claiming even more human lives in its wake . Palestinian cities , towns , villages and refugee camps continue to be targeted by the Israeli occupying forces , which routinely launch raids and attacks , using excessive and indiscriminate force against the defenceless Palestinian civilian population . Every day that passes witnesses more death , more destruction and the ongoing devastation of Palestinian society in all its aspects as the occupying Power continues to pursue this campaign of war crimes , State terrorism and systematic human rights violations against the Palestinian people . In the 10 days since our last letter , the Israeli occupying forces have killed at least 41 Palestinians , including children , and killed one foreign national ( American ) . Many other Palestinians have been wounded , several of them critically , during recent attacks by the occupying forces . In addition to the extrajudicial executions being regularly committed by the Israeli occupying forces against targeted Palestinians , the occupying forces continue to wilfully kill civilians through the use of excessive and indiscriminate force against the Palestinian population under occupation . An extreme illustration of such excessive and indiscriminate use of force and the occupying forces ' shoot-to-kill policy occurred this past week , on Thursday , 13 March , when Israeli troops unleashed a barrage of machine gun and helicopter fire on two men on a road near Hebron , riddling their car with bullets and killing both of them . The two men killed were in fact Israeli soldiers , whom the occupying forces stated they had “ mistaken ” for Palestinians . Indeed , without provocation , without reason , without questions , the occupying forces shot at the men , intending to kill them and proving once again how lax the occupying Power 's firing regulations are and how instituted the policy of wilful killing of Palestinians has become among the Israeli occupying forces . During this same period , dozens of Palestinian homes have been deliberately demolished by the occupying forces , leaving hundreds of Palestinians homeless , and dozens of other Palestinian homes and shelters have been damaged , many severely , by the occupying forces during their assaults . Moreover , the occupying forces continue to carry out raids and searches of homes and round-ups , while at the same time abducting , arresting and detaining Palestinians throughout the Occupied Palestinian Territory . In less than two weeks , more than 100 Palestinians , including many from the Jenin , Nablus , Al-Khalil and Gaza City areas , have been detained by the Israeli occupying forces . These people are now being held illegally by the occupying Power , in addition to the more than 5,000 Palestinians being held in Israeli jails and detention centres , including nearly 65 Palestinian women . With regard to the recent killings committed , just today , 17 March , the Israeli occupying forces , in two different assaults in the Gaza Strip , killed 10 Palestinians , among them a two-year-old girl , Hanan Ziyad Al-Asar , and two other Palestinian children , and killed 2 Palestinians in the Tulkarem area . In Gaza , early in the morning ( Palestine time ) , Israeli tanks and armoured vehicles , backed by helicopter gunships , raided the densely populated Nusseirat refugee camp , killing at least seven people and wounding several others . A number of Palestinian homes were also blown up by the occupying forces during this assault . Later on the same day , the Israeli occupying forces raided the town of Beit Lahiya , firing indiscriminately in the area as children were going to school and killing three Palestinians . In addition , the occupying forces rounded up hundreds of residents of Beit Lahiya for questioning . These brutal , wilful killings come on the heels of recent attacks launched by the occupying forces in the same area as well as in other areas that have killed many Palestinians . In this regard , last week , in less than 24 hours , the Israeli occupying forces killed 11 Palestinians in the Jenin area . On Thursday , 13 March , the occupying forces attacked the village of Tamoun near the city of Jenin , killing 5 Palestinians . The following day , the occupying forces launched yet another raid in the Jenin refugee camp , killing 6 Palestinians and causing extensive damage . Further , in an attack committed earlier in the week , Israeli occupying forces killed another Palestinian during a home demolition in Gaza . Indeed , the occupying Power 's illegal practice of home demolitions has not only left thousands homeless but has also been a lethal practice that has claimed the lives of many . As such , the immense bulldozers being used by the Israeli occupying forces to raze and destroy Palestinian homes , lands and infrastructure represent yet another deadly weapon in Israel 's vast military arsenal . Regrettably , it is not only the Palestinian people that have suffered grave loss under the treads and plows of Israel 's mighty bulldozers . Yesterday , 16 March , in a horrific act of wilful killing , an Israeli bulldozer ran over and killed a 23-year-old American woman , Rachel Corrie , during a home demolition in Rafah in the Gaza Strip . Ms. Corrie was among a group of activists with the International Solidarity Movement ( ISM ) , who were protesting the home demolitions being carried out by the occupying forces . The ISM activists have repeatedly and voluntarily participated in such protests and non-violent demonstrations throughout the Occupied Palestinian Territory , trying to provide assistance and protection to the Palestinian civilian population facing Israel 's relentless military onslaught . Ms. Corrie 's tragic death provides even further proof of the excessive and indiscriminate force being used by the occupying Power against civilians . In this regard , Israeli claims that the driver of the bulldozer did not see Ms. Corrie have been refuted by several witnesses , who stated that not only was she visible in a bright orange jacket , but that , using a megaphone , she had been speaking to the driver for several minutes prior to him running her over with the bulldozer 's huge plow and treads . Ms. Corrie 's killing by the Israeli occupying forces should be firmly condemned by the international community . Failure to do so will only further sanction the impunity with which Israel , the occupying Power , has been feverishly carrying out its bloody and brutal campaign throughout the Occupied Palestinian Territory , including East Jerusalem . Indeed , such wilful killing of a civilian is a war crime , and the perpetrators of this crime must be held accountable and brought to justice . This letter is in follow-up to our previous 161 letters to you regarding the ongoing crisis in the Occupied Palestinian Territory , including East Jerusalem , since 28 September 2000. These letters , dated from 29 September 2000 ( A/55/432-S/2001/921 ) to 7 March 2003 ( A/ES-10/221-S/2003/287 ) , constitute a basic record of the crimes committed by the Israeli occupying forces against the Palestinian people since September 2000. For all these war crimes , State terrorism and systematic human rights violations committed against the Palestinian people , Israel , the occupying Power , must be held accountable and the perpetrators must be brought to justice . Accordingly , in follow-up to the above-mentioned letters , it is my deep regret to inform you that , since our last letter to you , the Israeli occupying forces have killed at least 41 Palestinians , including children , raising the total number of martyrs to 2,265 Palestinians . ( The names of the martyrs that have been identified thus far are contained in the annex to the present letter . I would be grateful if you would arrange to have the present letter and its annex distributed as a document of the tenth emergency special session of the General Assembly , under agenda item 5 , and of the Security Council . ( Signed ) Nasser Al-Kidwa Ambassador Permanent Observer of Palestine to the United Nations Annex to the identical letters dated 17 March 2003 from the Permanent Observer of Palestine to the United Nations addressed to the Secretary-General and the President of the Security Council Names of martyrs killed by the Israeli occupying forces in the Occupied Palestinian Territory , including East Jerusalem* * The total number of Palestinians killed by the Israeli occupying forces since 28 September 2000 is 2,265 martyrs . ( Saturday , 8 March to Monday , 17 March 2003 ) Saturday , 8 March 2003 Ibrahim Ahmed Khaled Al-Makadmeh Ala'a Odeh Al-Shukri Khaled Hassan Juma'a Abdelrahman Zuhair Al-Amoudi Mahmoud Hassan Al-Zinati Mufeed Saed Al-Daefi Sunday , 9 March 2003 Ribhi Mahmoud Abdelraziq Obeid Tuesday , 11 March 2003 Imad Hussein Abu Gharkoud Mohammed Ismail Ayash Nidal Ibrahim Abu Saqr Hafez Najmy Al-Rajbi Jabr Jaber Joubran Wednesday , 12 March 2003 Rami Taleb Saed Al-Ashqar Thursday , 13 March 2003 Samir Saleh Mahra ( from wounds sustained earlier ) Baker Nayef Attiyeh Bani Odeh Imad Nayef Attiyeh Bani Odeh Sami Fathi Mustafa Basharat Amin Ali Sa'ad Basharat ( 18 years old ) Mohammed Ghazi Abu Murad Mahajneh Friday , 14 March 2003 Yussef Ahmed Hassan Musharqeh Wathiq Ahmed Al-Bish Ighbaryeh Rabea ' Farah Hasan Sharkawi Osama Ribhi Saed Abu Khalil ( 15 years old ) Ibrahim Khalil Minizil Saleh Adeeb Bu'atewi ( from wounds sustained earlier ) Jihad Samir Abu Rabea ' ( 17 years old ) Mohammed Nizar Ibrahim Selim ( 17 years old ) Sunday , 16 March 2003 Ahmed Mahmoud Al-Najjar Mohammed Issa Abdelhady Monday , 17 March 2003 Hanan Ziyad Al-Asar ( 2 years old ) Omar Hassan Darwish ( 13 years old ) Omar Tawfiq Abu Yussef ( 16 years old ) Iyad Bashir Azreeq Ibrahim Yussef Al-Othmani Saed Hosni Al-Taweel Mohammed Rajeb Al-Safeen Ramzi Al-Sudoodi Shadi Kharees Ala'a Al-Kahlousa Muaed Ahmed Al-Ashqar Samer Riyad Mohammed Al-Ashqar 