diff --git a/src/GraphicView.cpp b/src/GraphicView.cpp
index 2a60cdcc6e4b8a50b031c4838962bd181b609be0..d0e0aa2240b0e1265b3a65c3544949f458a00fd3 100644
--- a/src/GraphicView.cpp
+++ b/src/GraphicView.cpp
@@ -1634,14 +1634,11 @@ void jpsGraphicsView::delete_marked_lines()
 
             RemoveIntersections(marked_lines[i]);
 
-
             delete marked_lines[i]->get_line();
+            qDebug()<< "jpsGraphicsView::delete_marked_lines(): Delete undefined line!";
             //marked_lines[i]->set_line(nullptr);
             delete marked_lines[i];
             line_vector.removeOne(marked_lines[i]);
-
-
-
         }
 
         marked_lines.clear();
diff --git a/src/datamanager.cpp b/src/datamanager.cpp
index 6432947cfceac8ba902d7385c3fdde4d5e4a8bbb..244250ef2c71c2606647c672af95c4f260a92975 100644
--- a/src/datamanager.cpp
+++ b/src/datamanager.cpp
@@ -1580,15 +1580,38 @@ void jpsDatamanager::remove_all()
 
 void jpsDatamanager::remove_marked_lines()
 {
-     dtrace("Enter jpsDatamanager::remove_marked_lines");
     QList<jpsLineItem* > marked_lines = _mView->get_markedLines();
+    QList<jpsObstacle*> obstacle_list = this->get_obstaclelist();
+    QList<jpsRoom* > cList= this->get_roomlist();
+
     for (int i=0; i<marked_lines.size(); i++)
     {
-        if (marked_lines[i]->is_Wall()==true)
+        if (marked_lines[i]->is_Wall()==true && obstacle_list.size()>0)
+        {
+            for (int m=0; m<obstacle_list.size(); m++)
+            {
+                QList<jpsLineItem* > deleted_obstacle_lines;
+                for (int n=0; n<obstacle_list[m]->get_listWalls().size(); n++)
+                {
+                    if(marked_lines[i]==obstacle_list[m]->get_listWalls()[n])
+                    {
+                        deleted_obstacle_lines.push_back(obstacle_list[m]->get_listWalls()[n]);
+                    }
+                }
+                obstacle_list[m]->removeWall(deleted_obstacle_lines);
+                qDebug()<< "jpsDatamanager::remove_marked_lines(): Obstacle line is deleted!";
+            }
+        }
+        else
+        {
+            qDebug()<< "jpsDatamanager::remove_marked_lines(): Marked line isn't in obstacle!";
+        }
+
+        if (marked_lines[i]->is_Wall()==true && cList.size()>0)
         {
-            QList<jpsRoom* > cList= this->get_roomlist();
             for (int j=0; j<cList.size(); j++)
-            {   QList<jpsLineItem* > delete_candidates;
+            {
+                QList<jpsLineItem* > delete_candidates;
                 for (int k=0; k<cList[j]->get_listWalls().size(); k++)
                 {
                     if (marked_lines[i]==cList[j]->get_listWalls()[k])
@@ -1597,6 +1620,7 @@ void jpsDatamanager::remove_marked_lines()
                     }
                 }
                 cList[j]->removeWall(delete_candidates);
+                qDebug()<< "jpsDatamanager::remove_marked_lines(): Wall line is deleted!";
             }
         }
 
@@ -1611,9 +1635,13 @@ void jpsDatamanager::remove_marked_lines()
                     break;
                 }
             }
+            qDebug()<< "jpsDatamanager::remove_marked_lines(): Door line is deleted!";
+        }
+        else
+        {
+            qDebug()<< "jpsDatamanager::remove_marked_lines(): Marked line isn't defined!";
         }
     }
-     dtrace("Leave jpsDatamanager::remove_marked_lines");
 }
 
 void jpsDatamanager::set_view(jpsGraphicsView *view)
diff --git a/src/mainWindow.cpp b/src/mainWindow.cpp
index 749c1484a0e597d7d02f3da0e909d927925d2852..ff0ddee6dc79f345bafc990d9401abee051d1d69 100644
--- a/src/mainWindow.cpp
+++ b/src/mainWindow.cpp
@@ -198,8 +198,6 @@ MWindow :: MWindow() {
 
     // room type data gathering
     connect(actionGather_data,SIGNAL(triggered(bool)),this, SLOT(GatherData()));
-
-
 }
 
 MWindow::~MWindow()