diff --git modules/field/modules/field_sql_storage/field_sql_storage.module modules/field/modules/field_sql_storage/field_sql_storage.module
index a3c03d2..4775f62 100644
--- modules/field/modules/field_sql_storage/field_sql_storage.module
+++ modules/field/modules/field_sql_storage/field_sql_storage.module
@@ -360,6 +360,14 @@ function field_sql_storage_field_storage_write($entity_type, $entity, $op, $fiel
   list($id, $vid, $bundle) = entity_extract_ids($entity_type, $entity);
   $etid = _field_sql_storage_etid($entity_type);
 
+  // @todo: This is a kludge and shouldn't be here. We need to write a revision
+  // for entities that don't support them because file_get_references() 
+  // queries the revision table. The revision table is still created for
+  // these entities, so we can write to it.
+  if (!isset($vid)) {
+    $vid = $id;
+  }
+
   foreach ($fields as $field_id) {
     $field = field_info_field_by_id($field_id);
     $field_name = $field['field_name'];
@@ -380,14 +388,13 @@ function field_sql_storage_field_storage_write($entity_type, $entity, $op, $fiel
           ->condition('entity_id', $id)
           ->condition('language', $languages, 'IN')
           ->execute();
-        if (isset($vid)) {
-          db_delete($revision_name)
-            ->condition('etid', $etid)
-            ->condition('entity_id', $id)
-            ->condition('revision_id', $vid)
-            ->condition('language', $languages, 'IN')
-            ->execute();
-        }
+
+        db_delete($revision_name)
+          ->condition('etid', $etid)
+          ->condition('entity_id', $id)
+          ->condition('revision_id', $vid)
+          ->condition('language', $languages, 'IN')
+          ->execute();
       }
     }
 
@@ -398,9 +405,7 @@ function field_sql_storage_field_storage_write($entity_type, $entity, $op, $fiel
       $columns[] = _field_sql_storage_columnname($field_name, $column);
     }
     $query = db_insert($table_name)->fields($columns);
-    if (isset($vid)) {
-      $revision_query = db_insert($revision_name)->fields($columns);
-    }
+    $revision_query = db_insert($revision_name)->fields($columns);
 
     foreach ($field_languages as $langcode) {
       $items = (array) $entity->{$field_name}[$langcode];
@@ -420,9 +425,7 @@ function field_sql_storage_field_storage_write($entity_type, $entity, $op, $fiel
           $record[_field_sql_storage_columnname($field_name, $column)] = isset($item[$column]) ? $item[$column] : NULL;
         }
         $query->values($record);
-        if (isset($vid)) {
-          $revision_query->values($record);
-        }
+        $revision_query->values($record);
 
         if ($field['cardinality'] != FIELD_CARDINALITY_UNLIMITED && ++$delta_count == $field['cardinality']) {
           break;
@@ -433,9 +436,7 @@ function field_sql_storage_field_storage_write($entity_type, $entity, $op, $fiel
     // Execute the query if we have values to insert.
     if ($do_insert) {
       $query->execute();
-      if (isset($vid)) {
-        $revision_query->execute();
-      }
+      $revision_query->execute();
     }
   }
 }
