diff --git a/entityform.admin.inc b/entityform.admin.inc
index 3c4f552..6560874 100644
--- a/entityform.admin.inc
+++ b/entityform.admin.inc
@@ -195,6 +195,7 @@ function entityform_type_submit_page($entityform_type) {
   $view = entity_view('entityform_type', array($entityform_type), 'full', NULL, TRUE);
   return $view;
 }
+
 /**
  * Form callback wrapper: create or edit a entityform.
  *
@@ -286,6 +287,18 @@ function entityform_form_wrapper(Entityform $entityform, $mode = 'submit', $form
 }
 
 /**
+ * Form callback wrapper: preview an entityform.
+ *
+ * @param $entityform_type
+ *   The entityform type object being edited by this form.
+ * @see entityform_edit_form()
+ */
+function entityform_form_wrapper_preview(EntityformType $entityform_type) {
+  $entityform = entityform_empty_load($entityform_type->type);
+  return entityform_form_wrapper($entityform, 'submit', 'preview');
+}
+
+/**
  * Form callback wrapper: delete a entityform.
  *
  * @param $entityform
diff --git a/entityform.module b/entityform.module
index 92f4071..c13579c 100644
--- a/entityform.module
+++ b/entityform.module
@@ -34,11 +34,11 @@ function entityform_menu() {
     'type' => MENU_LOCAL_TASK,
     'weight' => 100,
   );
-  // @todo Add another config form to set whether to show preview form
+  // @todo Add another config form to set whether to show preview form.
   $items["$manage_path/preview"] = array(
     'title' => 'Form Preview',
-    'page callback' => 'entityform_form_wrapper',
-    'page arguments' => array($path_count - 1, 'submit', 'preview'),
+    'page callback' => 'entityform_form_wrapper_preview',
+    'page arguments' => array($path_count - 1),
     'access arguments' => array('administer entityform types'),
     'file' => 'entityform.admin.inc',
     'file path' => drupal_get_path('module', 'entityform'),
