diff --git a/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts b/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts
index 968d1d46017cea3a5fe77817d5a18f99e6d0e151..a6051d126077111e1f69aaf8c9f498620cb9b8ee 100644
--- a/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts
+++ b/src/main/webapp/app/exercise/exercise-details/exercise-details.component.ts
@@ -1,5 +1,5 @@
 import { HttpResponse } from '@angular/common/http';
-import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
+import { AfterViewInit, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';
 import { Router } from '@angular/router';
 import { faArrowRight, faFolderOpen } from '@fortawesome/free-solid-svg-icons';
 import { ReviewManagementService } from 'app/admin/review-management/review-management.service';
@@ -78,7 +78,7 @@ export class ExerciseHeaderComponent {
   templateUrl: './exerciseComponents/exercise-body.component.html',
   styleUrls: ['./exerciseComponents/exercise-body.component.scss'],
 })
-export class ExerciseBodyComponent implements OnInit, OnDestroy {
+export class ExerciseBodyComponent implements OnInit, OnDestroy, AfterViewInit {
   @Output() exerciseChangedEvent = new EventEmitter<SearchResultDTO>();
   @Input() get referencedExercise(): SearchResultDTO | undefined {
     return this.exercise;
@@ -88,6 +88,8 @@ export class ExerciseBodyComponent implements OnInit, OnDestroy {
   }
   exercise: ExtendedSearchResultDTO | undefined;
 
+  parent: SearchResultDTO | undefined;
+
   bookmarked = false;
 
   downloadWithChildren = false;
@@ -213,6 +215,7 @@ export class ExerciseBodyComponent implements OnInit, OnDestroy {
       next: searchResult => {
         this.exercise = this.exerciseService.populateExerciseWithData(searchResult);
         this.exerciseChangedEvent.emit(this.exercise);
+        this.updateParent(this.exercise);
       },
       error: () => {
         alert(`exercise ${exerciseId} cannot be loaded`);
@@ -296,6 +299,23 @@ export class ExerciseBodyComponent implements OnInit, OnDestroy {
     });
   }
 
+  ngAfterViewInit(): void {
+    this.updateParent(this.exercise!);
+  }
+
+  updateParent(exercise: ExtendedSearchResultDTO): void {
+    if (this.exercise!.file.parentId) {
+      this.exerciseService.loadExercise(this.exercise!.file.parentId).subscribe({
+        next: searchResult => {
+          this.parent = searchResult;
+        },
+        error: () => {
+          alert(`exercise ${this.exercise!.file.parentId} cannot be loaded`);
+        },
+      });
+    }
+  }
+
   ngOnDestroy(): void {
     if (this.authSubscription) {
       this.authSubscription.unsubscribe();
diff --git a/src/main/webapp/app/exercise/exercise-details/exerciseComponents/exercise-body.component.html b/src/main/webapp/app/exercise/exercise-details/exerciseComponents/exercise-body.component.html
index 65007e1225d5cb4f8f037467c072e770e5235425..52769fb60217ac177d30ad73a1489d33477951ad 100644
--- a/src/main/webapp/app/exercise/exercise-details/exerciseComponents/exercise-body.component.html
+++ b/src/main/webapp/app/exercise/exercise-details/exerciseComponents/exercise-body.component.html
@@ -154,7 +154,8 @@
         (click)="toParent(exercise.file.parentId)"
       >
         <span jhiTranslate="exercise.containedIn">This exercise is contained in</span>:
-        <span>
+        <span
+          >{{ parent!.metadata.title }}
           <fa-icon style="padding: 5px 0px 0px 5px" container="body" [icon]="treeIcon"></fa-icon>
         </span>
       </div>