diff --git a/resources/file_resource.inc b/resources/file_resource.inc
index 2cb0e43..486788c 100644
--- a/resources/file_resource.inc
+++ b/resources/file_resource.inc
@@ -187,16 +187,22 @@ function _file_resource_create($file) {
   $file->timestamp = time();
 
   // Write the file
-  if (!$file = file_save_data(base64_decode($file->file), $file->filepath)) {
+  if (!$file_saved = file_save_data(base64_decode($file->file), $file->filepath)) {
     return services_error(t("Could not write file to destination"), 500);
   }
 
-  // Required to be able to reference this file.
-  file_usage_add($file, 'services', 'files', $file->fid);
+  if (isset($file->status) && $file->status == 0) {
+    // Save as temporary file.
+    $file_saved->status = 0;
+    file_save($file_saved);
+  } else {
+    // Required to be able to reference this file.
+    file_usage_add($file_saved, 'services', 'files', $file_saved->fid);
+  }
 
   return array(
-    'fid' => $file->fid,
-    'uri' => services_resource_uri(array('file', $file->fid)),
+    'fid' => $file_saved->fid,
+    'uri' => services_resource_uri(array('file', $file_saved->fid)),
   );
 }
 /**
