diff --git a/db/migrations/1.310_add_seminare_semester_table.php b/db/migrations/1.310_add_seminare_semester_table.php
index 7986dcc65931c23496d6c20e0afc19ec877a9757..8ad19d78bb098032065fa53c43ad21a532dbb712 100644
--- a/db/migrations/1.310_add_seminare_semester_table.php
+++ b/db/migrations/1.310_add_seminare_semester_table.php
@@ -19,19 +19,15 @@ class AddSeminareSemesterTable extends Migration
             );"
         );
 
-        //This select looks unorthodox but I am trying to catch even broken
-        //database entries for when start_time and duration_time don't exactly
-        //match the begin or end of the semester.
         DBManager::get()->exec("
             INSERT IGNORE INTO `semester_courses`
             (`semester_id`, `course_id`, `mkdate`, `chdate`)
             SELECT `semester_data`.`semester_id`, `seminare`.`Seminar_id`, `seminare`.`mkdate`, `seminare`.`chdate`
             FROM `seminare`
-            INNER JOIN `semester_data` ON (`seminare`.`start_time` < `semester_data`.`ende`
-                     AND (
-                         `seminare`.`start_time` >= `semester_data`.`beginn` AND `seminare`.`duration_time` >= '0'
-                     )
-                )
+            INNER JOIN `semester_data` ON 
+                `seminare`.`start_time` <= `semester_data`.`beginn` AND
+                `semester_data`.`beginn` <= `seminare`.`start_time` + `seminare`.`duration_time` AND
+                `seminare`.`duration_time` >= 0
         ");
     }