diff --git a/app/controllers/course/overview.php b/app/controllers/course/overview.php
index fa30b1c38d969c1df99b930904d8db8432deefcb..966c0cac91dc363e7e2f58b3f3195be0cf6ffde7 100644
--- a/app/controllers/course/overview.php
+++ b/app/controllers/course/overview.php
@@ -96,9 +96,8 @@ class Course_OverviewController extends AuthenticatedController
                     foreach ((array) $rule['attributes'] as $val) {
                         if ($val == 1) {
                             // Es gibt also Zusatzangaben. Nun noch überprüfen ob der Nutzer diese Angaben schon gemacht hat...
-                            $count = DataField::countBySql("LEFT JOIN datafields_entries ON datafields_entries.datafield_id = datafields.datafield_id
-                                WHERE datafield_id.object_type = 'usersemdata' AND datafields_entries.sec_range_id = ? AND datafields_entries.range_id = ?",
-                                [$this->course_id, $GLOBALS['user']->id]
+                            $count = DataField::countBySql("LEFT JOIN datafields_entries USING (datafield_id) WHERE object_type = ? AND sec_range_id = ? AND range_id = ?",
+                                ['usersemdata', $this->course_id, $GLOBALS['user']->id]
                             );
                             if (!$count) {
                                 $show = true;
diff --git a/lib/classes/I18NStringDatafield.php b/lib/classes/I18NStringDatafield.php
index 69c0053d2a5b6199500bb0e7216adc8cdbf034d4..26e51a81ec3fae9a544f8388071faa60096af02a 100644
--- a/lib/classes/I18NStringDatafield.php
+++ b/lib/classes/I18NStringDatafield.php
@@ -59,8 +59,8 @@ class I18NStringDatafield extends I18NString
                 [$object_id[0], $object_id[1], $object_id[2]]
             );
             foreach ($this->lang as $lang => $value) {
-                if (mb_strlen($value)) {
-                    DataField::create(
+                if (strlen($value)) {
+                    DatafieldEntryModel::create(
                         [
                             'datafield_id' => $object_id[0],
                             'range_id' => $object_id[1],
@@ -87,14 +87,15 @@ class I18NStringDatafield extends I18NString
     public static function load($object_id, $table = '', $field = '', $base = null)
     {
         if (is_null($base)) {
-            $base = DataField::findOneBySQL(
+            $df = DatafieldEntryModel::findOneBySQL(
                 "`datafield_id` = ? AND `range_id` = ? AND `sec_range_id` = ? AND `lang` = ''",
                 $object_id
             );
+            $base = $df->content;
         }
         $table = null;
         $field = null;
-        return new self($base->content, self::fetchDataForField($object_id, $table, $field),
+        return new self($base, self::fetchDataForField($object_id, $table, $field),
                 compact('object_id', 'table', 'field'));
     }
 
diff --git a/lib/models/User.class.php b/lib/models/User.class.php
index 1fc2922375c8d37d963446aa6ae98c6cc4974e7e..cbd5e9087690ed84536719d170ed0579d562c03f 100644
--- a/lib/models/User.class.php
+++ b/lib/models/User.class.php
@@ -296,12 +296,12 @@ class User extends AuthUserMd5 implements Range, PrivacyObject
     public static function findByDatafield($datafield_id, $value)
     {
         return User::findMany(
-            SimpleCollection::createFromArray(
+            array_column(
                 DatafieldEntryModel::findBySQL(
                     'datafield_id = :datafield_id AND content = :value',
                     compact('datafield_id', 'value')
-                )
-            )->pluck('range_id')
+                ),
+                'range_id')
         );
     }