diff --git a/goofy-client/apps/goofy-e2e/src/components/wiedervorlage/wiedervorlage-attachment-list.component.ts b/goofy-client/apps/goofy-e2e/src/components/wiedervorlage/wiedervorlage-attachment-list.component.ts
index 89f480fe52f16dead5a2fd290fd1945e4cde04e7..9644c2b42de7a0825645c272e17401734df583fd 100644
--- a/goofy-client/apps/goofy-e2e/src/components/wiedervorlage/wiedervorlage-attachment-list.component.ts
+++ b/goofy-client/apps/goofy-e2e/src/components/wiedervorlage/wiedervorlage-attachment-list.component.ts
@@ -18,6 +18,7 @@ export class WiedervorlageAttachmentListE2EComponent {
 class AttachmentE2EItem {
 
 	private deleteButton$: string = 'icon-button';
+	private downloadButton$: string = 'file-download-button';
 
 	constructor(private fileName: string) { }
 
@@ -26,13 +27,10 @@ class AttachmentE2EItem {
 	}
 
 	public delete(): void {
-		this.getRoot().findTestElementWithClass(this.deleteButton$).then(button => {
-			button[0].click();
-			cy.wait(1000);
-		})
+		this.getRoot().findTestElementWithClass(this.deleteButton$).click();
 	}
 
 	public download(): void {
-		this.getRoot().findTestElementWithClass('file-download-button').click();
+		this.getRoot().findTestElementWithClass(this.downloadButton$).click();
 	}
 }
\ No newline at end of file
diff --git a/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.ts b/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.ts
index e1459bc0236add31f6a55be3f8de263850ebd4db..402567e7f7aec06785c1ad7363c0c3dd89e5aa0b 100644
--- a/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.ts
+++ b/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.ts
@@ -251,7 +251,7 @@ export class WiedervorlageService implements OnDestroy {
 		if (isNil(this.attachmentListByWiedervorlage[uri])) {
 			this.attachmentListByWiedervorlage[uri] = new BehaviorSubject(createEmptyStateResource());
 		} else {
-			this.attachmentListByWiedervorlage[uri].next({ ...this.attachmentListByWiedervorlage[uri].value, reload: true });
+			this.attachmentListByWiedervorlage[uri].next(createEmptyStateResource());
 		}
 
 		doIfLoadingRequired(this.attachmentListByWiedervorlage[uri].value, () => this.loadAttachments(wiedervorlage));
diff --git a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-attachments/wiedervorlage-attachments.component.html b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-attachments/wiedervorlage-attachments.component.html
index 1efc5f41b0256c02d65171e12ffde1b9e355020d..25bdd7df198d7005440daef8cadfe16e6f710544 100644
--- a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-attachments/wiedervorlage-attachments.component.html
+++ b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-attachments/wiedervorlage-attachments.component.html
@@ -1,7 +1,13 @@
-<goofy-client-anhang-list-in-wiedervorlage data-test-id="wiedervorlage-attachment-list"
-	[attachments]="attachments$ | async" [deletable]="true" 
-	(deleteAttachment)="deleteAttachment($event)">
-</goofy-client-anhang-list-in-wiedervorlage>
+<ng-container *ngIf="attachments$ | async as attachmentStateResource">
+	<goofy-client-spinner [stateResource]="attachmentStateResource">
+	
+		<goofy-client-anhang-list-in-wiedervorlage data-test-id="wiedervorlage-attachment-list"
+			[attachments]="attachmentStateResource.resource" [deletable]="true" 
+			(deleteAttachment)="deleteAttachment($event)">
+		</goofy-client-anhang-list-in-wiedervorlage>
+
+	</goofy-client-spinner>	
+</ng-container>
 
 <goofy-client-spinner [stateResource]="uploadInProgress$ | async">
 	<goofy-client-file-upload (fileChanged)="uploadFile($event)" data-test-id="wiedervorlage-file-upload"></goofy-client-file-upload>
diff --git a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-attachments/wiedervorlage-attachments.component.ts b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-attachments/wiedervorlage-attachments.component.ts
index e9b4ac9d85cbb23fa9527f9c4b3daf5fa611298b..1eb957001bd3424b96326b69fd7a98cdb25f6638 100644
--- a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-attachments/wiedervorlage-attachments.component.ts
+++ b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-attachments/wiedervorlage-attachments.component.ts
@@ -20,7 +20,7 @@ export class WiedervorlageAttachmentsComponent {
 
 	readonly linkRel = WiedervorlageLinkRel;
 
-	attachments$: Observable<OzgFileResource[]> = of([]);
+	attachments$: Observable<StateResource<OzgFileResource[]>> = of(createEmptyStateResource());
 	uploadInProgress$: Observable<StateResource<any>> = of(createEmptyStateResource());
 
 	constructor(public formService: WiedervorlageFormService, private wiedervorlageService: WiedervorlageService) {
diff --git a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.html b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.html
index 94a8125649a08f90e1108998fae60d5146425485..0cf1bbe2b2d5c74210eeb88490124fc3bb52340e 100644
--- a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.html
+++ b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.html
@@ -1 +1,7 @@
-<goofy-client-anhang-list-in-wiedervorlage [attachments]="attachments$ | async" [deletable]="false"></goofy-client-anhang-list-in-wiedervorlage>
\ No newline at end of file
+<ng-container *ngIf="attachments$ | async as attachmentStateResource">
+
+	<goofy-client-spinner [stateResource]="attachmentStateResource">
+		<goofy-client-anhang-list-in-wiedervorlage [attachments]="attachmentStateResource.resource" [deletable]="false"></goofy-client-anhang-list-in-wiedervorlage>
+	</goofy-client-spinner>
+
+</ng-container>
\ No newline at end of file
diff --git a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.spec.ts b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.spec.ts
index 229f3daf29a5b36a7e989df96d28d04130fdccb5..3dd1a1d79f7ae82e6593d6947102ed8aa507c321 100644
--- a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.spec.ts
+++ b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.spec.ts
@@ -1,6 +1,7 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
 import { AnhangListInWiedervorlageComponent } from '@goofy-client/ozg-file';
 import { mock } from '@goofy-client/test-utils';
+import { SpinnerComponent } from '@goofy-client/ui';
 import { WiedervorlageService } from '@goofy-client/wiedervorlage-shared';
 import { configureTestSuite } from 'ng-bullet';
 import { MockComponent } from 'ng-mocks';
@@ -16,7 +17,8 @@ describe('WiedervorlageAttachmentListInVorgangComponent', () => {
 		TestBed.configureTestingModule({
 			declarations: [
 				WiedervorlageAttachmentListInVorgangComponent,
-				MockComponent(AnhangListInWiedervorlageComponent)
+				MockComponent(AnhangListInWiedervorlageComponent),
+				MockComponent(SpinnerComponent)
 			],
 			providers: [
 				{
diff --git a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.ts b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.ts
index 6409871fbb8dff8b8f53fb102e31f8b2938805e1..ddd5a0d860efef649747f6647fd59f5ca4c9e97c 100644
--- a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.ts
+++ b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-list-in-vorgang-container/wiedervorlage-list-in-vorgang/wiedervorlage-in-vorgang/wiedervorlage-attachment-list-in-vorgang/wiedervorlage-attachment-list-in-vorgang.component.ts
@@ -1,5 +1,6 @@
 import { Component, Input, OnChanges, SimpleChanges } from '@angular/core';
 import { OzgFileListLinkRel, OzgFileListResource, OzgFileResource } from '@goofy-client/ozg-file-shared';
+import { createEmptyStateResource, createStateResource, StateResource } from '@goofy-client/tech-shared';
 import { WiedervorlageResource, WiedervorlageService } from '@goofy-client/wiedervorlage-shared';
 import { getEmbeddedResource } from '@ngxp/rest';
 import { Observable, of } from 'rxjs';
@@ -16,21 +17,21 @@ export class WiedervorlageAttachmentListInVorgangComponent implements OnChanges
 
 	readonly fileListRel = OzgFileListLinkRel;
 
-	attachments$: Observable<OzgFileResource[]> = of([]);
+	attachments$: Observable<StateResource<OzgFileResource[]>> = of(createEmptyStateResource());
 
 	constructor(public wiedervorlageService: WiedervorlageService) { }
 
 	ngOnChanges(changes: SimpleChanges): void {
 		if (changes.wiedervorlage) {
 			this.attachments$ = this.wiedervorlageService.getAttachmentList(this.wiedervorlage).pipe(
-				map(attachmentList => this.mapAttachments(attachmentList.resource))
+				map(attachmentList => this.mapAttachments(attachmentList))
 			);
 		}
 	}
 
-	private mapAttachments(attachmentList: OzgFileListResource): OzgFileResource[] {
-		return attachmentList
-			? getEmbeddedResource<OzgFileResource[]>(attachmentList, OzgFileListLinkRel.FILE_LIST)
-			: [];
+	private mapAttachments(attachmentListStateResource: StateResource<OzgFileListResource>): StateResource<OzgFileResource[]> {
+		return attachmentListStateResource.resource
+			? createStateResource(getEmbeddedResource<OzgFileResource[]>(attachmentListStateResource.resource, OzgFileListLinkRel.FILE_LIST))
+			: { ...attachmentListStateResource, resource: [] };
 	}
 }
\ No newline at end of file
diff --git a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage.formservice.ts b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage.formservice.ts
index c6796e4a815e2932661ea9c91c11a44a804e8c1c..7850da47adfe5abd3da9819c73e4545c48d6c497 100644
--- a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage.formservice.ts
+++ b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage.formservice.ts
@@ -1,12 +1,11 @@
 import { Injectable, OnDestroy } from '@angular/core';
 import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
 import { OzgFileListLinkRel, OzgFileListResource, OzgFileResource } from '@goofy-client/ozg-file-shared';
-import { AbstractFormService, createFutureDate, format, StateResource } from '@goofy-client/tech-shared';
+import { AbstractFormService, createFutureDate, createStateResource, format, StateResource } from '@goofy-client/tech-shared';
 import { Wiedervorlage, WiedervorlageLinkRel, WiedervorlageResource, WiedervorlageService } from '@goofy-client/wiedervorlage-shared';
 import { getEmbeddedResource, getUrl, hasLink } from '@ngxp/rest';
 import { isNil, isNull } from 'lodash-es';
 import { BehaviorSubject, Observable, Subscription } from 'rxjs';
-import { tap } from 'rxjs/operators';
 
 @Injectable()
 export class WiedervorlageFormService extends AbstractFormService implements OnDestroy {
@@ -17,7 +16,7 @@ export class WiedervorlageFormService extends AbstractFormService implements OnD
 
 	static readonly FIELD_PATH_PREFIX = 'command.wiedervorlage';
 
-	private attachments: BehaviorSubject<OzgFileResource[]>;
+	private attachments: BehaviorSubject<StateResource<OzgFileResource[]>>;
 	private attachmentSubscription: Subscription;
 
 	constructor(
@@ -26,18 +25,17 @@ export class WiedervorlageFormService extends AbstractFormService implements OnD
 	) {
 		super(formBuilder);
 
-		this.attachments = new BehaviorSubject([]);
+		this.attachments = new BehaviorSubject(createStateResource([]));
 	}
 
 	doAfterPatch(wiedervorlage: WiedervorlageResource): void {
 		if (!isNil(this.attachmentSubscription)) this.attachmentSubscription.unsubscribe();
-		console.info('do after patch');
 
 		if (this.hasAttachments(wiedervorlage)) {
+			this.attachments.next({ ...this.attachments.value, reload: true });
 			this.subscribeToAttachments(wiedervorlage);
 		} else {
-			console.info('update attachments to []');
-			this.attachments.next([]);
+			this.attachments.next(createStateResource([]));
 		}
 	}
 
@@ -51,8 +49,7 @@ export class WiedervorlageFormService extends AbstractFormService implements OnD
 
 	handleAttachmentList(attachmentsList: StateResource<OzgFileListResource>): void {
 		if (attachmentsList.resource) {
-			console.info('update attachments to existing');
-			this.attachments.next(getEmbeddedResource<OzgFileResource[]>(attachmentsList.resource, OzgFileListLinkRel.FILE_LIST));
+			this.attachments.next(createStateResource(getEmbeddedResource<OzgFileResource[]>(attachmentsList.resource, OzgFileListLinkRel.FILE_LIST)));
 		}
 	}
 
@@ -78,25 +75,29 @@ export class WiedervorlageFormService extends AbstractFormService implements OnD
 
 	getValue(): Wiedervorlage {
 		const formValue = super.getFormValue();
-		return { ...formValue, frist: format(formValue.frist), attachments: this.attachments.value.map(ozgFile => getUrl(ozgFile)) };
+		return { ...formValue, frist: format(formValue.frist), attachments: this.attachments.value.resource.map(ozgFile => getUrl(ozgFile)) };
 	}
 
-	public getAttachments(): Observable<OzgFileResource[]> {
-		return this.attachments.asObservable().pipe(tap(attachments => console.info('fire with: ', attachments)));
+	public getAttachments(): Observable<StateResource<OzgFileResource[]>> {
+		return this.attachments.asObservable();
 	}
 
 	public addAttachment(attachment: OzgFileResource): void {
+		/* this.attachments.next({ ...this.attachments.value, loading: true });
+		setTimeout(() => { */
 		let attachments = this.attachments.value;
-		attachments.push(attachment);
-		console.info('update attachment: add: ', attachment);
-		this.attachments.next(attachments);
+		attachments.resource.push(attachment);
+		this.attachments.next(createStateResource(attachments.resource));
+		//}, 200);
 	}
 
 	public deleteAttachment(attachment: OzgFileResource): void {
+		/* this.attachments.next({ ...this.attachments.value, loading: true });
+		setTimeout(() => { */
 		let attachments = this.attachments.value;
-		attachments.splice(attachments.indexOf(attachment), 1);
-		console.info('update attachment: delete: ', attachment);
-		this.attachments.next(attachments);
+		attachments.resource.splice(attachments.resource.indexOf(attachment), 1);
+		this.attachments.next(createStateResource(attachments.resource));
+		//}, 200);
 	}
 
 	ngOnDestroy(): void {