diff --git a/linkit.module b/linkit.module
index ccb0a2d..d8bc284 100644
--- a/linkit.module
+++ b/linkit.module
@@ -1150,3 +1150,46 @@ function linkit_get_insert_plugin_processed_path(LinkitProfile $profile, $uri, $
 
     return $path;
 }
+
+/**
+ * Implements hook_query_TAG_alter.
+ *
+ * Alter the query to also search title fields if "title" module is active.
+ *
+ * @param QueryAlterableInterface $query
+ */
+function linkit_query_linkit_entity_title_alter(QueryAlterableInterface $query) {
+  // Get some contextual data.
+  $entity_name = $query->getMetaData('linkit_base_entity');
+  $search_string = $query->getMetaData('linkit_search_string');
+
+  $entity_info = entity_get_info($entity_name);
+  $base_table = $entity_info['base table'];
+  $identifier = $entity_info['entity keys']['id'];
+  $label = $entity_info['entity keys']['label'];
+  $label_field_name = $label . '_field';
+
+  // Drop the existing search condition.
+  $exisiting_conditions =& $query->conditions();
+  foreach ($exisiting_conditions as $key => $exisiting_condition) {
+    if (isset($exisiting_condition['operator']) && $exisiting_condition['operator'] === 'LIKE') {
+      unset($exisiting_conditions[$key]);
+    }
+  }
+
+  // Join the title field table.
+  $query->leftJoin(
+    'field_data_' . $label_field_name,
+    't',
+    "(t.deleted = 0 AND t.entity_type = :entity_type AND t.entity_id = $base_table.$identifier)",
+    array(':entity_type' => $entity_name )
+  );
+
+  // Create a new OR condition set. The "OR" set is needed as some bundles might
+  // have the title replaced with a field and some not.
+  $or = db_or();
+  $or->condition('t.' . $label_field_name . '_value', '%' . db_like($search_string) . '%', 'LIKE');
+  $or->condition("$base_table.$label", '%' . db_like($search_string) . '%', 'LIKE');
+
+  $query->condition($or);
+}
diff --git a/plugins/linkit_search/entity.class.php b/plugins/linkit_search/entity.class.php
index da9db9f..ed3c0a2 100644
--- a/plugins/linkit_search/entity.class.php
+++ b/plugins/linkit_search/entity.class.php
@@ -136,13 +136,19 @@ class LinkitSearchPluginEntity extends LinkitSearchPlugin {
 
     $options = array();
     // Handle multilingual sites.
-    if (isset($entity->language) && $entity->language != LANGUAGE_NONE && drupal_multilingual() && language_negotiation_get_any(LOCALE_LANGUAGE_NEGOTIATION_URL)) {
-      $languages = language_list('enabled');
-      // Only use enabled languages.
-      $languages = $languages[1];
-
-      if ($languages && isset($languages[$entity->language])) {
-        $options['language'] = $languages[$entity->language];
+    if (drupal_multilingual() && language_negotiation_get_any(LOCALE_LANGUAGE_NEGOTIATION_URL)) {
+      // Handle field translation with entity_translation.
+      if (function_exists('entity_translation_enabled') && entity_translation_enabled($this->plugin['entity_type'], $entity)) {
+        $options['language'] = $GLOBALS['language'];
+      }
+      // Handle content translation.
+      else if (isset($entity->language) && $entity->language != LANGUAGE_NONE) {
+        $languages = language_list('enabled');
+        // Only use enabled languages.
+        $languages = $languages[1];
+        if ($languages && isset($languages[$entity->language])) {
+          $options['language'] = $languages[$entity->language];
+        }
       }
     }
     // Process the uri with the insert pluing.
@@ -226,6 +232,23 @@ class LinkitSearchPluginEntity extends LinkitSearchPlugin {
         $this->query->propertyCondition($this->entity_key_bundle, $bundles, 'IN');
       }
     }
+    // If "title" module is enabled and any of the containing bundles use it,
+    // add a special tag to the query.
+    if (module_exists('title')) {
+      $bundles = isset($this->conf['bundles']) ? $this->conf['bundles'] : field_info_bundles($this->plugin['entity_type']);
+      $title_in_use = FALSE;
+      foreach ($bundles as $bundle_name => $bundle) {
+        if (title_field_replacement_enabled($this->plugin['entity_type'], $bundle_name, $this->entity_field_label)) {
+          $title_in_use = TRUE;
+          break;
+        }
+      }
+      if ($title_in_use) {
+        $this->query->addTag('linkit_entity_title');
+        $this->query->addMetaData('linkit_base_entity', $this->plugin['entity_type']);
+        $this->query->addMetaData('linkit_search_string', $search_string);
+      }
+    }
 
     // Execute the query.
     $result = $this->query->execute();
@@ -329,4 +352,4 @@ class LinkitSearchPluginEntity extends LinkitSearchPlugin {
     }
     return $form;
   }
-}
\ No newline at end of file
+}
