Index: panels.module
=========================================================
--- panels.module	(revision 1.28.2.50)
+++ panels.module	Thu Mar 04 12:28:01 EST 2010
@@ -585,11 +585,23 @@
  * @todo schema API can drasticly simplify this code.
  */
 function panels_load_displays($dids) {
+  // Store displays that have already been loaded to prevent reduntant queries
+  static $all_displays = array();
   $displays = array();
   if (empty($dids) || !is_array($dids)) {
     return $displays;
   }
 
+  foreach ($dids as $key => $id) {
+    if (isset($all_displays[$id])) {
+      unset($dids[$key]);
+      $displays[$id] = $all_displays[$id];
+    }
+  }
+  if (empty($dids)) {
+    return $displays;
+  }
+
   $result = db_query("SELECT * FROM {panels_display} WHERE did IN (" .  db_placeholders($dids) . ")", $dids);
 
   ctools_include('export');
@@ -607,6 +619,10 @@
     $displays[$pane->did]->content[$pane->pid] = $pane;
   }
 
+  foreach ($displays as $key => $display) {
+    $all_displays[$key] = $display;
+  }
+
   return $displays;
 }
 
