diff --git a/classes/framework.php b/classes/framework.php
index 35df169198016881defd9aea0a784e718c11a0bb..c7ed7b1f2f00ec557c164f5626014a1465104465 100644
--- a/classes/framework.php
+++ b/classes/framework.php
@@ -1366,7 +1366,7 @@ class framework implements \H5PFrameworkInterface {
     public function isContentSlugAvailable($slug) {
         global $DB;
 
-        return !$DB->get_field_sql("SELECT slug FROM {hvp} WHERE slug = ?", array($slug));
+        return !$DB->get_records_sql("SELECT id, slug FROM {hvp} WHERE slug = ?", array($slug));
     }
 
     /**
diff --git a/mod_form.php b/mod_form.php
index 20fe20bc3ee14e4ea991d93cb342084996cd2c21..2e98050cdc2a19d0be34e9318fae1308db5852ef 100644
--- a/mod_form.php
+++ b/mod_form.php
@@ -352,13 +352,13 @@ class mod_hvp_mod_form extends moodleform_mod {
         unset($data->h5pparams);
 
         if ($data->h5paction === 'upload') {
-            if (empty($data->metadata) || empty($data->metadata['title'])) {
+            if (empty($data->metadata) || empty($data->metadata->title)) {
                 // Fix for legacy content upload to work.
                 // Fetch title from h5p.json or use a default string if not available
                 $h5pvalidator = \mod_hvp\framework::instance('validator');
-                $data->metadata['title'] = empty($h5pvalidator->h5pC->mainJsonData['title']) ? 'Uploaded Content' : $h5pvalidator->h5pC->mainJsonData['title'];
+                $data->metadata->title = empty($h5pvalidator->h5pC->mainJsonData['title']) ? 'Uploaded Content' : $h5pvalidator->h5pC->mainJsonData['title'];
             }
-            $data->name = $data->metadata['title']; // Sort of a hack, but there is no JavaScript that sets the value when there is no editor...
+            $data->name = $data->metadata->title; // Sort of a hack, but there is no JavaScript that sets the value when there is no editor...
         }
     }
 }