diff --git a/lib/Drupal/ctools/DatabaseExportableController.php b/lib/Drupal/ctools/DatabaseExportableController.php
index fa26cfc..15d5715 100644
--- a/lib/Drupal/ctools/DatabaseExportableController.php
+++ b/lib/Drupal/ctools/DatabaseExportableController.php
@@ -310,7 +310,16 @@ class DatabaseExportableController extends ExportableControllerBase {
   /**
    * @todo.
    */
-  public function create() {
+  public function create(array $data = array()) {
+    // Populate default values.
+    foreach ($this->schema['fields'] as $field => $info) {
+      // Get a default if nothing exists.
+      if (!isset($data[$field])) {
+        $data[$field] = !empty($info['default']) ? $info['default'] : NULL;
+      }
+    }
+
+    return new $this->info['exportable class']($data, $this->type);
   }
 
   /**
diff --git a/lib/Drupal/ctools/ExportableControllerInterface.php b/lib/Drupal/ctools/ExportableControllerInterface.php
index 8c54aef..98b3ef8 100644
--- a/lib/Drupal/ctools/ExportableControllerInterface.php
+++ b/lib/Drupal/ctools/ExportableControllerInterface.php
@@ -55,7 +55,7 @@ interface ExportableControllerInterface {
   /**
    * @todo.
    */
-  public function create();
+  public function create(array $data = array());
 
   /**
    * @todo.
