diff --git a/projects/player/src/app/components/unit-state/unit-state.component.ts b/projects/player/src/app/components/unit-state/unit-state.component.ts
index 09fa97f8fb98e62bf4124ed11eb0e7f762dd5347..7d98749e021fe28630718a67bfad8bcd1a00f713 100644
--- a/projects/player/src/app/components/unit-state/unit-state.component.ts
+++ b/projects/player/src/app/components/unit-state/unit-state.component.ts
@@ -74,11 +74,32 @@ export class UnitStateComponent implements OnInit, OnDestroy {
   }
 
   private get responseProgress(): Progress {
+    // TODO: Check other relevant Elements
     if (this.form.valid) {
       return 'complete';
     }
-    const pages: FormArray = this.form.get('pages') as FormArray;
-    return (pages.controls.some((control: AbstractControl): boolean => control.value)) ? 'some' : 'none';
+    const pagesControls: AbstractControl[] = (this.form.get('pages') as FormArray).controls;
+    for (let i = 0; i < pagesControls.length; i++) {
+      const pageControl = pagesControls[i];
+      if (pageControl.valid) {
+        return 'some';
+      }
+      const sectionControls = (pageControl.get('sections') as FormArray).controls;
+      for (let ii = 0; ii < sectionControls.length; ii++) {
+        const sectionControl = sectionControls[ii];
+        if (sectionControl.valid) {
+          return 'some';
+        }
+        const elementControls = (sectionControl.get('elements') as FormArray).controls;
+        for (let iii = 0; iii < elementControls.length; iii++) {
+          const elementControl = elementControls[iii];
+          if (elementControl.valid) {
+            return 'some';
+          }
+        }
+      }
+    }
+    return 'none';
   }
 
   private get presentationProgress(): Progress {
@@ -128,15 +149,18 @@ export class UnitStateComponent implements OnInit, OnDestroy {
   }
 
   private sendVopStateChangedNotification(): void {
-    const unitState: UnitState = {
-      dataParts: {
-        elementCodes: JSON.stringify(this.unitStateService.unitStateElementCodes)
-      },
-      presentationProgress: this.presentationProgress,
-      responseProgress: this.responseProgress,
-      unitStateDataType: this.metaDataService.playerMetadata.supportedUnitStateDataTypes
-    };
-    this.veronaPostService.sendVopStateChangedNotification({ unitState });
+    // give the form time to change its valid status
+    Promise.resolve().then(() => {
+      const unitState: UnitState = {
+        dataParts: {
+          elementCodes: JSON.stringify(this.unitStateService.unitStateElementCodes)
+        },
+        presentationProgress: this.presentationProgress,
+        responseProgress: this.responseProgress,
+        unitStateDataType: this.metaDataService.playerMetadata.supportedUnitStateDataTypes
+      };
+      this.veronaPostService.sendVopStateChangedNotification({ unitState });
+    });
   }
 
   ngOnDestroy(): void {