diff --git a/classes/file_storage.php b/classes/file_storage.php
index 260ea674da3b823dc65ebea0dcb417a7f9fa0daf..ea9fd52ffc15a0f4acdaea42e09f3ab2c64e9322 100644
--- a/classes/file_storage.php
+++ b/classes/file_storage.php
@@ -378,9 +378,9 @@ class file_storage implements \H5PFileStorage {
      *
      * @param string $file path + name
      * @param string|int $fromid Content ID or 'editor' string
-     * @param int $toid Target Content ID
+     * @param stdClass $tocontent Target Content
      */
-    public function cloneContentFile($file, $fromid, $toid) {
+    public function cloneContentFile($file, $fromid, $tocontent) {
       // Determine source file area and item id
       $sourcefilearea = ($fromid === 'editor' ? $fromid : 'content');
       $sourceitemid = ($fromid === 'editor' ? 0 : $fromid);
@@ -392,20 +392,19 @@ class file_storage implements \H5PFileStorage {
       }
 
       // Check to make sure source doesn't exist already
-      if ($this->getFile('content', $toid, $file) !== false) {
+      if ($this->getFile('content', $tocontent, $file) !== false) {
           return; // File exists, no need to copy
       }
 
-      // Grab context for cm
-      $cm = \get_coursemodule_from_instance('hvp', $toid);
-      $context = \context_module::instance($cm->id);
+      // Grab context for CM
+      $context = \context_module::instance($tocontent->coursemodule);
 
       // Create new file record
       $record = array(
           'contextid' => $context->id,
           'component' => 'mod_hvp',
           'filearea' => 'content',
-          'itemid' => $toid,
+          'itemid' => $tocontent->id,
           'filepath' => $this->getFilepath($file),
           'filename' => $this->getFilename($file)
       );
@@ -418,11 +417,11 @@ class file_storage implements \H5PFileStorage {
      * Used when saving content.
      *
      * @param string $file path + name
-     * @param int $contentid
+     * @param stdClass $content
      * @return string|int File ID or NULL if not found
      */
-    public function getContentFile($file, $contentid) {
-        $file = $this->getFile('content', $contentid, $file);
+    public function getContentFile($file, $content) {
+        $file = $this->getFile('content', $content, $file);
         return ($file === false ? null : $file->get_id());
     }
 
@@ -431,10 +430,10 @@ class file_storage implements \H5PFileStorage {
      * Used when saving content.
      *
      * @param string $file path + name
-     * @param int $contentid
+     * @param stdClass $content
      */
-    public function removeContentFile($file, $contentid) {
-        $file = $this->getFile('content', $contentid, $file);
+    public function removeContentFile($file, $content) {
+        $file = $this->getFile('content', $content, $file);
         if ($file !== false) {
             $file->delete();
         }
@@ -547,7 +546,7 @@ class file_storage implements \H5PFileStorage {
      * Help make it easy to load content files.
      *
      * @param string $filearea
-     * @param int $itemid
+     * @param int|stdClass $itemid
      * @param string $file path + name
      */
     private function getFile($filearea, $itemid, $file) {
@@ -557,8 +556,13 @@ class file_storage implements \H5PFileStorage {
             // Use Course context
             $context = \context_course::instance($COURSE->id);
         }
+        elseif (is_object($itemid)) {
+            // Grab CM context from item
+            $context = \context_module::instance($itemid->coursemodule);
+            $itemid = $itemid->id;
+        }
         else {
-            // Use CM context
+            // Use item ID to find CM context
             $cm = \get_coursemodule_from_instance('hvp', $itemid);
             $context = \context_module::instance($cm->id);
         }
diff --git a/editor b/editor
index 23f20f7bafd8e8c9ddafe5a6768c42f01975b0e7..d1ad5947b82ccbe2c3badad8d804f4d44fdc8efa 160000
--- a/editor
+++ b/editor
@@ -1 +1 @@
-Subproject commit 23f20f7bafd8e8c9ddafe5a6768c42f01975b0e7
+Subproject commit d1ad5947b82ccbe2c3badad8d804f4d44fdc8efa
diff --git a/lib.php b/lib.php
index caf5b294b063d0c708915ed1a748cfd9ab7987b7..d8154ff6028b1558076aa1ea755eee9ae1ffc774 100644
--- a/lib.php
+++ b/lib.php
@@ -159,7 +159,7 @@ function hvp_save_content($hvp) {
         $params = json_decode($hvp->params);
 
         // Move any uploaded images or files. Determine content dependencies.
-        $editor->processParameters($hvp->id, $hvp->library, $params, isset($oldlib) ? $oldlib : NULL, isset($oldparams) ? $oldparams : NULL);
+        $editor->processParameters($hvp, $hvp->library, $params, isset($oldlib) ? $oldlib : NULL, isset($oldparams) ? $oldparams : NULL);
     }
 
     return $hvp->id;