diff --git a/projects/common/form.ts b/projects/common/form.ts
index 804e44d119d097aabf67bf79f81c596954fb74de..921d72cd88f9e9313eb12de8690750b2e2221324 100644
--- a/projects/common/form.ts
+++ b/projects/common/form.ts
@@ -21,4 +21,5 @@ export interface ChildFormGroup {
   formGroup: FormGroup;
   parentForm: FormGroup;
   parentArray: 'pages' | 'sections' | 'elements'
+  parentArrayIndex: number;
 }
diff --git a/projects/player/src/app/components/element-overlay.component.ts b/projects/player/src/app/components/element-overlay.component.ts
index 3ac1a797b77b1152337cb75965dbeee56cb8e50e..22d2eed42edabdf49753b39e3a03ac21da8a95c8 100644
--- a/projects/player/src/app/components/element-overlay.component.ts
+++ b/projects/player/src/app/components/element-overlay.component.ts
@@ -27,6 +27,7 @@ import { FormService } from '../../../../common/form.service';
 export class ElementOverlayComponent implements OnInit, OnDestroy {
   @Input() elementModel!: UnitUIElement;
   @Input() parentForm!: FormGroup;
+  @Input() parentArrayIndex!: number;
   private elementForm!: FormGroup;
 
   @ViewChild('elementComponentContainer',
@@ -72,7 +73,8 @@ export class ElementOverlayComponent implements OnInit, OnDestroy {
     this.formService.registerFormGroup({
       formGroup: this.elementForm,
       parentForm: this.parentForm,
-      parentArray: 'elements'
+      parentArray: 'elements',
+      parentArrayIndex: this.parentArrayIndex
     });
   }
 
diff --git a/projects/player/src/app/components/form.component.ts b/projects/player/src/app/components/form.component.ts
index 6e2823d7338963fb7005ef4de21443570cccdeef..860aca608a2a3cef3bae472c5f021c4c485e015e 100644
--- a/projects/player/src/app/components/form.component.ts
+++ b/projects/player/src/app/components/form.component.ts
@@ -84,7 +84,11 @@ export class FormComponent implements OnDestroy {
 
   private addGroup = (group: ChildFormGroup): void => {
     const formArray: FormArray = group.parentForm.get(group.parentArray) as FormArray;
-    formArray.push(group.formGroup);
+    if (group.parentArrayIndex < formArray.length) {
+      formArray.insert(group.parentArrayIndex, group.formGroup);
+    } else {
+      formArray.push(group.formGroup);
+    }
   };
 
   private onElementValueChanges = (value: ValueChangeElement): void => {
diff --git a/projects/player/src/app/components/page.component.ts b/projects/player/src/app/components/page.component.ts
index f29014b5b496890e80fa005c269e4a334070b6b9..cf4c49a3bd79f89a6484a8dec7a323bdbac52ccb 100644
--- a/projects/player/src/app/components/page.component.ts
+++ b/projects/player/src/app/components/page.component.ts
@@ -10,6 +10,7 @@ import { FormService } from '../../../../common/form.service';
   template: `
       <app-section *ngFor="let section of page.sections"
                    [parentForm]="pageForm"
+                   [parentArrayIndex]="parentArrayIndex"
                    [section]="section"
                    [ngStyle]="{
                 position: 'relative',
@@ -25,6 +26,7 @@ import { FormService } from '../../../../common/form.service';
 export class PageComponent implements OnInit {
   @Input() page!: UnitPage;
   @Input() parentForm!: FormGroup;
+  @Input() parentArrayIndex!: number;
   pageForm!: FormGroup;
 
   constructor(private formService: FormService, private formBuilder: FormBuilder) {}
@@ -37,7 +39,8 @@ export class PageComponent implements OnInit {
     this.formService.registerFormGroup({
       formGroup: this.pageForm,
       parentForm: this.parentForm,
-      parentArray: 'pages'
+      parentArray: 'pages',
+      parentArrayIndex: this.parentArrayIndex
     });
   }
 }
diff --git a/projects/player/src/app/components/player-state/player-state.component.html b/projects/player/src/app/components/player-state/player-state.component.html
index 3904ee7f8c948f2ce37989b54ac81655f6ccfbac..e830f0cc22bbc36cb6e3b5d25109a893a2402cfd 100644
--- a/projects/player/src/app/components/player-state/player-state.component.html
+++ b/projects/player/src/app/components/player-state/player-state.component.html
@@ -1,14 +1,16 @@
 <div *ngIf="!running" class='stopped-overlay'></div>
 <div fxLayout="row">
-  <mat-tab-group [fxFlex]="pageWidth" [(selectedIndex)]="currentIndex"
+  <mat-tab-group *ngIf="hasScrollPages" [fxFlex]="pageWidth" [(selectedIndex)]="currentIndex"
                  (selectedIndexChange)="onSelectedIndexChange()"
                  mat-align-tabs="start">
-    <mat-tab *ngFor="let page of scrollPages; let i = index" label="{{'pageIndication' | translate: {index: i + 1} }}">
-      <app-page class="page" [parentForm]="parenForm" [page]="page"></app-page>
-    </mat-tab>
+    <ng-container *ngFor="let page of pages; let i = index">
+      <mat-tab *ngIf="!page.alwaysVisible" label="{{'pageIndication' | translate: {index: pageIndices[i] + 1} }}">
+        <app-page class="page" [parentArrayIndex]="i" [parentForm]="parenForm" [page]="page"></app-page>
+      </mat-tab>
+    </ng-container>
   </mat-tab-group>
-  <div *ngIf="alwaysVisiblePage" fxFlex="50">
+  <div *ngIf="alwaysVisiblePage" [fxFlex]="pageWidth">
     <div class="mat-tab-label">{{'alwaysVisiblePage' | translate}}</div>
-    <app-page class="page" [parentForm]="parenForm" [page]="alwaysVisiblePage"></app-page>
+    <app-page class="page" [parentArrayIndex]="alwaysVisiblePageIndex" [parentForm]="parenForm" [page]="alwaysVisiblePage"></app-page>
   </div>
 </div>
diff --git a/projects/player/src/app/components/player-state/player-state.component.ts b/projects/player/src/app/components/player-state/player-state.component.ts
index 3096a98410ab8f0f21155f5e29f446d35f33905c..76e69e5069ef690aa7fd69572138c3f67ff4c692 100644
--- a/projects/player/src/app/components/player-state/player-state.component.ts
+++ b/projects/player/src/app/components/player-state/player-state.component.ts
@@ -21,8 +21,17 @@ import { VeronaPostService } from '../../services/verona-post.service';
 export class PlayerStateComponent implements OnInit, OnDestroy {
   @Input() parenForm!: FormGroup;
   @Input() pages!: UnitPage[];
+
   currentIndex: number = 0;
+  pageIndices!: number[];
+  scrollPages!: UnitPage[];
+  hasScrollPages!: boolean;
+  pageWidth!: number;
+  validPages!: Record<string, string> [];
+  alwaysVisiblePage!: UnitPage | undefined;
+  alwaysVisiblePageIndex!: number;
   running: boolean = true;
+
   private ngUnsubscribe = new Subject<void>();
 
   constructor(private veronaSubscriptionService: VeronaSubscriptionService,
@@ -30,29 +39,9 @@ export class PlayerStateComponent implements OnInit, OnDestroy {
               private translateService: TranslateService) {
   }
 
-  private get state(): RunningState {
-    return this.running ? 'running' : 'stopped';
-  }
-
-  get pageWidth(): number {
-    return this.alwaysVisiblePage ? 50 : 100;
-  }
-
-  get validPages():Record<string, string>[] {
-    return this.scrollPages.map((page: UnitPage, index: number): Record<string, string> => (
-      { [page.id]: `${this.translateService.instant('pageIndication', { index: index + 1 })}` }));
-  }
-
-  get alwaysVisiblePage(): UnitPage | undefined {
-    return this.pages.find((page: UnitPage): boolean => page.alwaysVisible);
-  }
-
-  get scrollPages(): UnitPage[] {
-    return this.pages.filter((page: UnitPage): boolean => !page.alwaysVisible);
-  }
-
   ngOnInit(): void {
     this.initSubscriptions();
+    this.initPageState();
     this.sendVopStateChangedNotification();
   }
 
@@ -71,6 +60,28 @@ export class PlayerStateComponent implements OnInit, OnDestroy {
       .subscribe((message: VopGetStateRequest): void => this.onGetStateRequest(message));
   }
 
+  private initPageState() {
+    this.alwaysVisiblePageIndex = this.pages.findIndex((page: UnitPage): boolean => page.alwaysVisible);
+    this.alwaysVisiblePage = this.pages[this.alwaysVisiblePageIndex];
+    this.scrollPages = this.pages.filter((page: UnitPage): boolean => !page.alwaysVisible);
+    this.hasScrollPages = this.scrollPages && this.scrollPages.length > 0;
+    this.pageWidth = !this.alwaysVisiblePage || !this.hasScrollPages ? 100 : 50;
+    this.validPages = this.scrollPages.map((page: UnitPage, index: number): Record<string, string> => (
+      { [page.id]: `${this.translateService.instant('pageIndication', { index: index + 1 })}` }));
+    this.pageIndices = this.pages.map(
+      (page: UnitPage, index: number): number => {
+        if (index === this.alwaysVisiblePageIndex) {
+          return this.pages.length - 1;
+        }
+        return (this.alwaysVisiblePageIndex < 0 || index < this.alwaysVisiblePageIndex) ? index : index - 1;
+      }
+    );
+  }
+
+  private get state(): RunningState {
+    return this.running ? 'running' : 'stopped';
+  }
+
   onSelectedIndexChange(): void {
     this.sendVopStateChangedNotification();
   }
diff --git a/projects/player/src/app/components/section.component.ts b/projects/player/src/app/components/section.component.ts
index ae7879810adf47550e6c57b4d5c672fb862e4079..f4f77674fcc67f24b5f4140757dab00e501eedfe 100644
--- a/projects/player/src/app/components/section.component.ts
+++ b/projects/player/src/app/components/section.component.ts
@@ -11,7 +11,8 @@ import { FormService } from '../../../../common/form.service';
     <app-element-overlay
         *ngFor="let element of section.elements"
         [elementModel]="element"
-        [parentForm]="sectionForm">
+        [parentForm]="sectionForm"
+        [parentArrayIndex]="parentArrayIndex">
     </app-element-overlay>
   `
 })
@@ -19,8 +20,10 @@ export class SectionComponent implements OnInit {
   @Input() parentForm!: FormGroup;
   @Input() section!: UnitPageSection;
   @Input() sectionForm!: FormGroup;
+  @Input() parentArrayIndex!: number;
 
-  constructor(private formService: FormService, private formBuilder: FormBuilder) {}
+  constructor(private formService: FormService, private formBuilder: FormBuilder) {
+  }
 
   ngOnInit(): void {
     this.sectionForm = new FormGroup({
@@ -29,7 +32,8 @@ export class SectionComponent implements OnInit {
     this.formService.registerFormGroup({
       formGroup: this.sectionForm,
       parentForm: this.parentForm,
-      parentArray: 'sections'
+      parentArray: 'sections',
+      parentArrayIndex: this.parentArrayIndex
     });
   }
 }