diff --git a/bean.module b/bean.module
index 7eff43f..7c68cd4 100644
--- a/bean.module
+++ b/bean.module
@@ -334,7 +334,13 @@ function bean_load($bid, $reset = FALSE) {
  * @see bean_load()
  */
 function bean_load_multiple($bids = array(), $conditions = array(), $reset = FALSE) {
-  return entity_load('bean', $bids, $conditions, $reset);
+  $beans = entity_load('bean', $bids, $conditions, $reset);
+  foreach ($beans as $bid => $bean) {
+    $bean->setPlugin();
+    $bean->setFields();
+    $beans[$bid] = $bean;
+  }
+  return $beans;
 }
 
 /**
diff --git a/includes/bean.core.inc b/includes/bean.core.inc
index ca6c025..c8d5cee 100644
--- a/includes/bean.core.inc
+++ b/includes/bean.core.inc
@@ -25,14 +25,20 @@ class Bean extends Entity {
     parent::__construct($values, 'bean');
 
     // load the plugin info
-    $this->plugin = bean_load_plugin_class($this->type);
-    $this->setFields();
+    // FIXME: I'm resorting to calling these externally. They should be called here somehow.
+    //$this->setPlugin();
+    //$this->setFields();
   }
 
+  public function setPlugin() {
+    $this->plugin = bean_load_plugin_class($this->type);
+  }
+  
   /**
    * Set the fields from the defaults and plugin
+   * FIXME: This should be private, but I need to be able to call it externally for now.
    */
-  protected function setFields() {
+  public function setFields() {
     $values = unserialize($this->data);
     foreach ($this->plugin->values() as $field => $default) {
       $this->$field = isset($values[$field]) ? $values[$field] : $default;
