diff --git a/src/urh/util/ProjectManager.py b/src/urh/util/ProjectManager.py
index <HASH>..<HASH> 100644
--- a/src/urh/util/ProjectManager.py
+++ b/src/urh/util/ProjectManager.py
@@ -77,7 +77,8 @@ class ProjectManager(QObject):
         return result
 
     def set_project_folder(self, path, ask_for_new_project=True, close_all=True):
-        if close_all:
+        if self.project_file is not None or close_all:
+            # Close existing project (if any) or existing files if requested
             self.main_controller.close_all()
         FileOperator.RECENT_PATH = path
         self.project_path = path
diff --git a/tests/test_project_manager.py b/tests/test_project_manager.py
index <HASH>..<HASH> 100644
--- a/tests/test_project_manager.py
+++ b/tests/test_project_manager.py
@@ -54,6 +54,7 @@ class TestProjectManager(QtTestCase):
         self.gframe.modulators.clear()
         self.assertEqual(len(self.gframe.modulators), 0)
 
+        self.form.project_manager.project_file = None   # prevent saving of the zero modulators
         self.form.project_manager.set_project_folder(self.form.project_manager.project_path, close_all=False)
         self.assertEqual(len(self.gframe.modulators), 2)
improve new project behaviour when a project is currently loaded