diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/include/myGraphicsScene.h b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/include/myGraphicsScene.h
index c9691a581b7cc6297e574c70467b4833c7fb881b..b1e5f4da678ce73b95ab5df84692c5d86876b17b 100755
--- a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/include/myGraphicsScene.h
+++ b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/include/myGraphicsScene.h
@@ -44,6 +44,8 @@ public:
 
     void removeTable();
 
+    void addCFZone(QRectF rect, int index);
+
 public slots:
     void removeCrazyFlyZone(int cf_zone_index);
     void setSelectedCrazyFlyZone(int index);
diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/mainguiwindow.cpp b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/mainguiwindow.cpp
index 1073d852812f331cbc6a54632580c0a9287de6c1..66fa30440e4cf2e0c2b482e68e4a9d2ea61824af 100755
--- a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/mainguiwindow.cpp
+++ b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/mainguiwindow.cpp
@@ -712,6 +712,32 @@ void MainGUIWindow::on_load_from_DB_button_clicked()
             std::string cf_name = m_data_base.crazyflieEntries[i].crazyflieContext.crazyflieName;
             int cf_zone_index = m_data_base.crazyflieEntries[i].crazyflieContext.localArea.crazyfly_zone_index;
             // we should first create the cf zones that are in the database?
+            bool cf_zone_exists;
+            qreal width = m_data_base.crazyflieEntries[i].crazyflieContext.localArea.xmax - m_data_base.crazyflieEntries[i].crazyflieContext.localArea.xmin;
+            qreal height = m_data_base.crazyflieEntries[i].crazyflieContext.localArea.ymax - m_data_base.crazyflieEntries[i].crazyflieContext.localArea.ymin;
+            QRectF tmp_rect(m_data_base.crazyflieEntries[i].crazyflieContext.localArea.xmin,
+                            m_data_base.crazyflieEntries[i].crazyflieContext.localArea.ymax,
+                            width,
+                            height);
+            int found_j;
+            for(int j = 0; j < scene->crazyfly_zones.size(); j++)
+            {
+                if(cf_zone_index == scene->crazyfly_zones[j]->getIndex())
+                {
+                    cf_zone_exists = true;
+                    found_j = j;
+                    break;
+                }
+            }
+            if(!cf_zone_exists)
+            {
+                scene->addCFZone(tmp_rect, cf_zone_index);
+            }
+            else
+            {
+                scene->crazyfly_zones[found_j]->setRect(tmp_rect);
+                scene->crazyfly_zones[found_j]->rectSizeChanged();
+            }
             int student_id = m_data_base.crazyflieEntries[i].studentID;
             cf_linker->link(student_id, cf_zone_index, cf_name);
         }
diff --git a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/myGraphicsScene.cpp b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/myGraphicsScene.cpp
index 81c0ad3196d7b6311259a26f3b20dada3b2c5726..f92e0180f2669e951100790aee9408a859515ac3 100755
--- a/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/myGraphicsScene.cpp
+++ b/pps_ws/src/d_fall_pps/GUI_Qt/CrazyFlyGUI/src/myGraphicsScene.cpp
@@ -95,6 +95,17 @@ int myGraphicsScene::checkSelectedCrazyFlyZone()
     return -1;
 }
 
+void myGraphicsScene::addCFZone(QRectF rect, int index)
+{
+    tmp_crazyfly_zone_item = new crazyFlyZone(rect, index);
+    addItem(tmp_crazyfly_zone_item);
+    tmp_crazyfly_zone_item->setRect(tmp_crazyfly_zone_item->rect().normalized());
+    addCrazyFlyZoneToVector(tmp_crazyfly_zone_item);
+    std::string str = std::to_string(tmp_crazyfly_zone_item->getIndex() + 1);
+    tmp_crazyfly_zone_item->setLabel(str.c_str());
+    setSelectedCrazyFlyZone(crazyfly_zones.size() - 1); //select just created rectangle
+}
+
 void myGraphicsScene::mousePressEvent(QGraphicsSceneMouseEvent *mouseEvent)
 {
     if (mouseEvent->button() != Qt::LeftButton)
@@ -413,7 +424,6 @@ void myGraphicsScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *mouseEvent)
                 {
                     tmp_crazyfly_zone_item->setRect(tmp_crazyfly_zone_item->rect().normalized());
                     addCrazyFlyZoneToVector(tmp_crazyfly_zone_item);
-                    // TODO: set first available number, not size of vector. Index + 1
                     std::string str = std::to_string(tmp_crazyfly_zone_item->getIndex() + 1);
                     tmp_crazyfly_zone_item->setLabel(str.c_str());
                     setSelectedCrazyFlyZone(crazyfly_zones.size() - 1); //select just created rectangle