diff --git a/resources/file_resource.inc b/resources/file_resource.inc
index e39fa90..2d3b10e 100644
--- a/resources/file_resource.inc
+++ b/resources/file_resource.inc
@@ -239,6 +239,9 @@ function _file_resource_create($file) {
   }
   $file['filepath'] = $destination;
 
+  // Set the file user id.
+  $file['uid'] = $user->uid;
+
   // Update the timestamp to the current time, otherwise the file could
   // get deleted on the next cron run if its status is set to 0.
   $file['timestamp'] = time();
@@ -359,11 +362,10 @@ function _file_resource_access($op = 'view', $args = array()) {
         return TRUE;
       }
       return $file->uid == $user->uid && user_access('get own binary files');
-      break;
     case 'create':
+      return user_access('save file information');
     case 'delete':
       return $file->uid == $user->uid && user_access('save file information');
-      break;
   }
 
   return FALSE;
diff --git a/tests/functional/ServicesResourceFileTests.test b/tests/functional/ServicesResourceFileTests.test
index 69c3d6e..26328dc 100644
--- a/tests/functional/ServicesResourceFileTests.test
+++ b/tests/functional/ServicesResourceFileTests.test
@@ -66,7 +66,6 @@ class ServicesResourceFileTests extends ServicesWebTestCase {
       'filesize' => filesize($this->testfiles[0]->filename),
       'filename' => str_replace('/simpletest/', '/' . $this->randomName() . '/'  . $this->randomName() . '/', $this->testfiles[0]->filename),
       'file' => base64_encode(file_get_contents($this->testfiles[0]->filename)),
-      'uid' => $this->privileged_user->uid,
     );
 
     // Create file with call.
@@ -78,6 +77,7 @@ class ServicesResourceFileTests extends ServicesWebTestCase {
     $dbresult = db_query('SELECT * FROM {files} WHERE fid = %d', $result['body']['fid']);
     $file_load = db_fetch_object($dbresult);
     $this->assertTrue(is_file($file_load->filepath), t('New file saved to disk.'), 'FileResource: Create');
+    $this->assertEqual($file_load->uid, $this->privileged_user->uid, t('File author id is preserved.'), 'FileResource: Create');
 
     // Lets create another file with the same details
     // and ensure name and path are changed automatically.
