--- svx/source/svdraw/svdmrkv.cxx.orig	2007-05-23 17:21:10.000000000 +0800
+++ svx/source/svdraw/svdmrkv.cxx	2007-05-23 17:21:15.000000000 +0800
@@ -254,6 +254,19 @@
 	GetMarkedObjectListWriteAccess().SetUnsorted();
 	SortMarkedObjects();
 	bMrkPntDirty=TRUE;
+    //remove empty maked SdrObject
+    ULONG nMarkAnz=GetMarkedObjectCount();
+    for (ULONG nMarkNum=nMarkAnz; nMarkNum>0;)
+    {
+        nMarkNum--;
+        SdrMark* pM=GetSdrMarkByIndex(nMarkNum);
+        const SdrObject* pObj=pM->GetMarkedSdrObj();
+        if( pObj == NULL )
+        {
+            GetMarkedObjectListWriteAccess().DeleteMark(nMarkNum);
+        }
+    }
+
 	UndirtyMrkPnt();
 	SdrView* pV=(SdrView*)this;
 	if (pV!=NULL && !pV->IsDragObj() && !pV->IsInsObjPoint()) { // an dieser Stelle habe ich ein ziemliches Problem !!!
