diff --git a/classes/framework.php b/classes/framework.php
index 7584827ee1c3b1a62f419a31ded61f66ca6d971a..fc7ab69c8dae98948bb54778ac860b5160d34070 100644
--- a/classes/framework.php
+++ b/classes/framework.php
@@ -215,15 +215,15 @@ class framework implements \H5PFrameworkInterface {
             @set_time_limit(0);
 
             // Generate local tmp file path.
-            $localfolder = $CFG->tempdir . uniqid('/hvp-');
-            $stream      = $localfolder . '.h5p';
+            $localfolder = make_temp_directory(uniqid('hvp-'));
+            $localpath = $localfolder . '.h5p';
 
             // Add folder and file paths to H5P Core.
             $interface = self::instance('interface');
             $interface->getUploadedH5pFolderPath($localfolder);
-            $interface->getUploadedH5pPath($stream);
+            $interface->getUploadedH5pPath($localpath);
 
-            $stream                  = fopen($stream, 'w');
+            $stream = fopen($localpath, 'w');
             $options['CURLOPT_FILE'] = $stream;
         }
 
@@ -244,7 +244,7 @@ class framework implements \H5PFrameworkInterface {
 
         if ($stream !== null) {
             fclose($stream);
-            @chmod($stream, $CFG->filepermissions);
+            @chmod($localpath, $CFG->filepermissions);
         }
 
         $errorno = $curl->get_errno();