diff --git a/app/controllers/admin/courses.php b/app/controllers/admin/courses.php
index e822eab1477b54e46e6f7c9fe078d1225294226d..aa56bfbad73094b51532817470828b3c8e77cd49 100644
--- a/app/controllers/admin/courses.php
+++ b/app/controllers/admin/courses.php
@@ -393,14 +393,27 @@ class Admin_CoursesController extends AuthenticatedController
         $activated_fields = $this->getFilterConfig();
 
         $GLOBALS['user']->cfg->store('MY_COURSES_ACTION_AREA', Request::option('action'));
+        $course_ids = [];
         foreach ($courses as $course) {
             if ($course->parent && !Request::option('course_id')) {
-                $data['data'][] = $this->getCourseData($course->parent, $activated_fields);
-                $data['data'][] = $this->getCourseData($course, $activated_fields);
+                if (!in_array($course->parent->id, $course_ids)) {
+                    $data['data'][] = $this->getCourseData($course->parent, $activated_fields);
+                    $course_ids[] = $course->parent->id;
+                }
+                if (!in_array($course->id, $course_ids)) {
+                    $data['data'][] = $this->getCourseData($course, $activated_fields);
+                    $course_ids[] = $course->id;
+                }
             } else {
-                $data['data'][] = $this->getCourseData($course, $activated_fields);
+                if (!in_array($course->id, $course_ids)) {
+                    $data['data'][] = $this->getCourseData($course, $activated_fields);
+                    $course_ids[] = $course->id;
+                }
                 foreach ($course->children as $childcourse) {
-                    $data['data'][] = $this->getCourseData($childcourse, $activated_fields);
+                    if (!in_array($childcourse->id, $course_ids)) {
+                        $data['data'][] = $this->getCourseData($childcourse, $activated_fields);
+                        $course_ids[] = $childcourse->id;
+                    }
                 }
             }
         }