diff --git a/file_entity.module b/file_entity.module
index a912106..2df9381 100644
--- a/file_entity.module
+++ b/file_entity.module
@@ -1647,36 +1647,38 @@ function file_entity_file_entity_access($op, $file, $account) {
 function file_entity_query_file_access_alter(QueryAlterableInterface $query) {
   global $user;
 
+  $tables = $query->getTables();
+  $alias = isset($tables['file_managed']['alias']) ? $tables['file_managed']['alias'] : 'fm';
   if (user_access('bypass file access')) {
     // Administrators don't need to be restricted to only permanent files.
-    $query->condition('fm.status', FILE_STATUS_PERMANENT);
+    $query->condition($alias .'.status', FILE_STATUS_PERMANENT);
   }
   elseif (user_access('view files')) {
     // For non-private files, users can view if they have the 'view files'
     // permission.
-    $query->condition('fm.status', FILE_STATUS_PERMANENT);
+    $query->condition($alias .'.status', FILE_STATUS_PERMANENT);
   }
   elseif (user_access('view private files') && user_is_logged_in()) {
     // For private files, users can view private files if the
     // user is not anonymous, and has the 'view private files' permission.
-    $query->condition('fm.uri', db_like('private://') . '%', 'LIKE');
-    $query->condition('fm.status', FILE_STATUS_PERMANENT);
+    $query->condition($alias .'.uri', db_like('private://') . '%', 'LIKE');
+    $query->condition($alias .'.status', FILE_STATUS_PERMANENT);
   }
   elseif (user_access('view own files')) {
     // For non-private files, allow to see if user owns the file.
-    $query->condition('fm.uid', $user->uid, '=');
-    $query->condition('fm.status', FILE_STATUS_PERMANENT);
+    $query->condition($alias .'.uid', $user->uid, '=');
+    $query->condition($alias .'.status', FILE_STATUS_PERMANENT);
   }
   elseif (user_access('view own private files') && user_is_logged_in()) {
     // For private files, users can view their own private files if the
     // user is not anonymous, and has the 'view own private files' permission.
-    $query->condition('fm.uri', db_like('private://') . '%', 'LIKE');
-    $query->condition('fm.uid', $user->uid, '=');
-    $query->condition('fm.status', FILE_STATUS_PERMANENT);
+    $query->condition($alias .'.uri', db_like('private://') . '%', 'LIKE');
+    $query->condition($alias .'.uid', $user->uid, '=');
+    $query->condition($alias .'.status', FILE_STATUS_PERMANENT);
   }
 
   foreach (array_keys(file_entity_get_hidden_stream_wrappers()) as $name) {
-    $query->condition('fm.uri', $name . '%', 'NOT LIKE');
+    $query->condition($alias .'.uri', $name . '%', 'NOT LIKE');
   }
 }
 
