diff --git a/nion/swift/model/Profile.py b/nion/swift/model/Profile.py
index <HASH>..<HASH> 100644
--- a/nion/swift/model/Profile.py
+++ b/nion/swift/model/Profile.py
@@ -308,6 +308,7 @@ class Profile(Observable.Observable, Persistence.PersistentObject):
                 if project:
                     self.add_project_reference(work_project_reference)
                     self.__append_project(work_project_reference["uuid"], project)
+                    project.read_project()
                     self.work_project_reference_uuid = uuid.UUID(work_project_reference["uuid"])
                     self.__work_project = project
 
diff --git a/nion/swift/test/Storage_test.py b/nion/swift/test/Storage_test.py
index <HASH>..<HASH> 100644
--- a/nion/swift/test/Storage_test.py
+++ b/nion/swift/test/Storage_test.py
@@ -4061,6 +4061,7 @@ class TestStorageClass(unittest.TestCase):
             with contextlib.closing(document_model):
                 data_item = DataItem.DataItem(numpy.ones((16, 16), numpy.uint32))
                 document_model.append_data_item(data_item)
+            self.assertTrue(all(project.project_state == "loaded" for project in profile.projects))
 
     def test_work_project_is_created_if_not_valid(self):
         with create_temp_profile_context() as profile_context:
Ensure work project has state 'loaded' after being created.