diff --git a/forms/roomwidget.ui b/forms/roomwidget.ui
index e98f0e6f4e6b0ade1663f43aea0ad6f5849877d1..1e2c896dbc5ce5116c28440d3bd48e5ab029c466 100644
--- a/forms/roomwidget.ui
+++ b/forms/roomwidget.ui
@@ -17,7 +17,7 @@
    <string/>
   </property>
   <property name="currentIndex">
-   <number>0</number>
+   <number>1</number>
   </property>
   <widget class="QWidget" name="widget">
    <property name="toolTip">
@@ -470,9 +470,6 @@
        <property name="enabled">
         <bool>false</bool>
        </property>
-       <property name="currentText">
-        <string/>
-       </property>
       </widget>
      </item>
     </layout>
diff --git a/src/datamanager.cpp b/src/datamanager.cpp
index cd61947eb57fddd92b3b4bb89a4d74ee6e3eeb51..29abd2d26ceb321401d2a43001314ad0832d8617 100644
--- a/src/datamanager.cpp
+++ b/src/datamanager.cpp
@@ -693,6 +693,7 @@ QString jpsDatamanager::RoomIDHLine(jpsLineItem *lineItem)
 
     for (jpsRoom* room:roomlist)
     {
+        room->IdentifyInnerOuter();
         QPolygonF rPolygon = room->RoomAsSortedPolygon(room->GetOuterPolygon());
         if (rPolygon.containsPoint(lineItem->get_line()->line().p1(),Qt::OddEvenFill) ||
                 rPolygon.contains(lineItem->get_line()->line().p1()))
@@ -921,6 +922,8 @@ void jpsDatamanager::writeCrossings(QXmlStreamWriter *stream, QList<jpsLineItem
             stream->writeAttribute("py",QString::number(crossingList[i]->get_cLine()->get_line()->line().y2()));
             stream->writeEndElement();//vertex
             stream->writeEndElement();//crossing
+
+            lines.removeOne(crossingList[i]->get_cLine());
         }
         else
         {
@@ -936,7 +939,7 @@ void jpsDatamanager::writeCrossings(QXmlStreamWriter *stream, QList<jpsLineItem
             else
                 exitList.back()->set_rooms(crossingList[i]->get_roomList()[0]);
         }
-        lines.removeOne(crossingList[i]->get_cLine());
+
     }
     dtrace("Leave jpsDatamanager::writeCrossings");
 }