diff --git a/modules/line_item/commerce_line_item.module b/modules/line_item/commerce_line_item.module
index 557087e..96d95d6 100644
--- a/modules/line_item/commerce_line_item.module
+++ b/modules/line_item/commerce_line_item.module
@@ -708,8 +708,20 @@ function commerce_line_item_query_commerce_line_item_access_alter(QueryAlterable
   // Join the line items to their orders.
   if (module_exists('commerce_order')) {
     $tables = &$query->getTables();
-    $base_table = key($tables);
-    $order_alias = $query->innerJoin('commerce_order', 'co', '%alias.order_id = ' . $base_table . '.order_id');
+
+    // Look for existing commerce_order table.
+    foreach ($tables as $table) {
+      if ($table['table'] === 'commerce_order') {
+        $order_alias = $table['alias'];
+        break;
+      }
+    }
+
+    // If not found, join against the first table.
+    if (!isset($order_alias)) {
+      $base_table = key($tables);
+      $order_alias = $query->innerJoin('commerce_order', 'co', '%alias.order_id = ' . $base_table . '.order_id');
+    }
 
     // Perform the access control on the order.
     commerce_entity_access_query_alter($query, 'commerce_order', $order_alias);
