diff --git a/references_dialog.dialog_widgets.inc b/references_dialog.dialog_widgets.inc
index be1fe31..01cb446 100644
--- a/references_dialog.dialog_widgets.inc
+++ b/references_dialog.dialog_widgets.inc
@@ -54,6 +54,7 @@ function references_dialog_references_dialog_widgets() {
       'element_type' => 'textfield',
       'dialog_form' => 'entityreference_autocomplete_dialog_form',
       'views_query' => 'references_dialog_entityreference_views_query',
+      'type_callback' => 'references_dialog_entityreference_get_type',
       'format' => '$label ($entity_id)',
       'operations' => array(
         'edit' => array(
@@ -164,7 +165,7 @@ function references_dialog_entityreference_edit_link($element, $widget_settings,
   if (isset($element['#default_value'])) {
     $entity_type = $field['settings']['target_type'];
     // Take "label (entity id)', match the id from parenthesis.
-    if (preg_match("/.\((\d)\)/", $element['#default_value'], $matches)) {
+    if (preg_match("/.+\((\d+)\)/", $element['#default_value'], $matches)) {
         $value = $matches[1];
       }
     if (isset($value)) {
@@ -246,3 +247,6 @@ function references_dialog_entityreference_views_query($view, $instance, $field)
   }
 }
 
+function references_dialog_entityreference_get_type($instance, $field) {
+  return $field['settings']['target_type'];
+}
diff --git a/references_dialog.module b/references_dialog.module
index f4d14bb..4a622b5 100644
--- a/references_dialog.module
+++ b/references_dialog.module
@@ -192,7 +192,7 @@ function references_dialog_references_dialog_search_attachables() {
             $attachable_type = $dialog_widget['entity_type'];
           }
           elseif (isset($dialog_widgets[$instance['widget']['type']]['type_callback'])) {
-            $attachable_type = $dialog_widget['type_callback']($instance);
+            $attachable_type = $dialog_widget['type_callback']($instance, $field);
           }
           if (isset($attachable_type)) {
             $applicable_instances[$attachable_type][$entity_type . ':' . $field_name . ':' . $bundle_name] = array(
diff --git a/views/references_dialog_plugin_display.inc b/views/references_dialog_plugin_display.inc
index c1ebf70..15f0f07 100644
--- a/views/references_dialog_plugin_display.inc
+++ b/views/references_dialog_plugin_display.inc
@@ -196,7 +196,7 @@ class references_dialog_plugin_display extends views_plugin_display {
     foreach ($this->view->result as $result) {
       $js_result[] = array(
         'entity_id' => $result->{$this->view->base_field},
-        'title' => $result->node_title,
+        'title' => isset($result->node_title) ? $result->node_title : NULL,
         'entity_type' => $entity_type,
       );
     }
@@ -217,4 +217,4 @@ class references_dialog_plugin_display extends views_plugin_display {
   function render() {
     return theme($this->theme_functions(), array('view' => $this->view));
   }
-}
\ No newline at end of file
+}
