diff --git a/alias_preview.module b/alias_preview.module
index 53cdbcb..5441346 100644
--- a/alias_preview.module
+++ b/alias_preview.module
@@ -106,9 +106,10 @@ function alias_preview_ajax_callback($form, $form_state) {
   if (isset($form['alias_preview_original_url']['#value'])) {
     $original = $form['alias_preview_original_url']['#value'];
   }
+  $node = node_form_submit_build_node($form, $form_state);
 
   module_load_include('inc', 'alias_preview', 'includes/alias_preview');
-  $alias = alias_preview_make_alias($type, $title, $original);
+  $alias = alias_preview_make_alias($node, $original);
   global $base_url;
   $state = 'existing';
   if (!isset($form['#node']->nid) || isset($form['#node']->is_new)) {
diff --git a/includes/alias_preview.inc b/includes/alias_preview.inc
index 4d5525a..ac9940e 100644
--- a/includes/alias_preview.inc
+++ b/includes/alias_preview.inc
@@ -24,8 +24,9 @@
  *
  * @see alias_preview_ajax()
  */
-function alias_preview_make_alias($type, $title, $original = NULL) {
+function alias_preview_make_alias($node, $original = NULL) {
   // Only continues if a pathauto pattern is available.
+  $type = $node->type;
   $pattern = trim(variable_get("pathauto_node_{$type}_pattern", FALSE));
   if (empty($pattern)) {
     $pattern = trim(variable_get('pathauto_node_pattern', FALSE));
@@ -34,11 +35,6 @@ function alias_preview_make_alias($type, $title, $original = NULL) {
     return FALSE;
   }
 
-  // Makes a bare-minimum simple node object to pass to pathauto function.
-  $node = (object) array(
-    'title' => $title,
-    'type' => $type,
-  );
   module_load_include('inc', 'node', 'node.pages');
   node_object_prepare($node);
 
