diff --git a/lib/Drupal/ctools/DatabaseExportableController.php b/lib/Drupal/ctools/DatabaseExportableController.php
index a5fd804..2680627 100644
--- a/lib/Drupal/ctools/DatabaseExportableController.php
+++ b/lib/Drupal/ctools/DatabaseExportableController.php
@@ -377,8 +377,8 @@ class DatabaseExportableController extends ExportableControllerBase {
   public function unpack($exportable, $data) {
     // Go through our schema and build correlations.
     foreach ($data as $field => $value) {
-      if (isset($this->schema[$field])) {
-        $exportable->$field = !empty($this->schema[$field]['serialize']) ? unserialize($data[$field]) : $data[$field];
+      if (isset($this->schema['fields'][$field])) {
+        $exportable->$field = !empty($this->schema['fields'][$field]['serialize']) ? unserialize($data[$field]) : $data[$field];
       }
       else {
         $exportable->$field = $value;
diff --git a/tests/ctools_export_test/ctools_exportable.test b/tests/ctools_export_test/ctools_exportable.test
index a1307b4..f37cdc6 100644
--- a/tests/ctools_export_test/ctools_exportable.test
+++ b/tests/ctools_export_test/ctools_exportable.test
@@ -71,6 +71,8 @@ class CToolsExportableTestCase extends WebTestBase {
     $loaded_export = $controller->load('database_test');
 
     $this->assertEqual($expected_export, $loaded_export, 'An exportable object has been loaded correctly from the database.');
+
+    $this->assertTrue(is_array($loaded_export->data), 'Serialized data has been unserialized on the exportable.');
   }
 
 }
