diff --git a/views_filter_view.module b/views_filter_view.module
index f96465e..61c63f6 100644
--- a/views_filter_view.module
+++ b/views_filter_view.module
@@ -19,10 +19,12 @@ function views_filter_view_views_api() {
  *   The name of the view which should be executed|loaded the result.
  * @param $display
  *   The display id which should be used.
+ * @param $base_field
+ *   The base field that contains the value to be returned.
  * @return array
  *   The items of the view
  */
-function views_filter_view_get_items($name, $display) {
+function views_filter_view_get_items($name, $display, $base_field) {
   $view_display = $name . ':' . $display;
   $view_results = &drupal_static(__FUNCTION__, array());
 
@@ -31,22 +33,45 @@ function views_filter_view_get_items($name, $display) {
   }
   else {
     $view = views_get_view($name);
-    $items = array();
     if ($view && $view->set_display($display)) {
       $view->pre_execute();
       $view->init_query();
       $view->execute();
-      foreach ($view->result as $values) {
-        $value = $values->{$view->base_field_alias};
-        $items[$value] = $value;
-      }
-      $view_results[$view_display] = $items;
-      return $items;
+      $view_results[$view_display] = _views_filter_view_get_items($view, $base_field);
+      return $view_results[$view_display];
     }
   }
 }
 
 /**
+ * Processes the provided view and returns all items as defined by the
+ * base_field.
+ *
+ * @param $view
+ *   The view being processed.
+ * @param base_field
+ *   The base field that contains the values to be returned.
+ * @return array
+ *   The items of the view
+ */
+function _views_filter_view_get_items($view, $base_field) {
+  $items = array();
+  foreach ($view->query->field_aliases as $table_alias => $field_aliases) {
+    if (isset($field_aliases[$base_field])) {
+      $base_field_alias = $field_aliases[$base_field];
+      break;
+    }
+  }
+  if (isset($base_field_alias)) {
+    foreach ($view->result as $values) {
+      $value = $values->{$base_field_alias};
+      $items[$value] = $value;
+    }
+  }
+  return $items;
+}
+
+/**
  * Get all views which are selected in the view filter.
  *
  * @see views_filter_view_handler_filter_view
@@ -77,7 +102,7 @@ function views_filter_view_get_filter_views() {
           foreach ($filters as $id => $item) {
             if ($item['table'] == 'views' && $item['field'] == 'view') {
               if (!empty($item['view'])) {
-                $filter_views[$item['view']] = $item['view'];
+                $filter_views[$item['view']] = $view->base_field;
               }
               continue;
             }
@@ -92,22 +117,6 @@ function views_filter_view_get_filter_views() {
 }
 
 /**
- * Implements hook_views_pre_execute().
- *
- * Add the base field to the query as it's required to let the module work.
- *
- * @param view $view
- *   The actual view to act on.
- */
-function views_filter_view_views_pre_execute(&$view) {
-  $views = views_filter_view_get_filter_views();
-  $view_display = $view->name . ':' . $view->current_display;
-  if (isset($views[$view_display])) {
-    $view->base_field_alias = $view->query->add_field($view->base_table, $view->base_field);
-  }
-}
-
-/**
  * Implements hook_views_post_execute().
  *
  * @param view $view
@@ -120,12 +129,6 @@ function views_filter_view_views_post_execute(&$view) {
   if (isset($views[$view_display])) {
     // If the view is selected store the result.
     $view_results = &drupal_static('views_filter_view_get_items', array());
-    foreach ($view->result as $values) {
-      if (isset($view->base_field_alias)) {
-        $value = $values->{$view->base_field_alias};
-        $items[$value] = $value;
-      }
-    }
-    $view_results[$view_display] = $items;
+    $view_results[$view_display] = _views_filter_view_get_items($view, $views[$view_display]);
   }
-}
\ No newline at end of file
+}
diff --git a/views_filter_view_handler_filter_view.inc b/views_filter_view_handler_filter_view.inc
index 145f153..134c17e 100644
--- a/views_filter_view_handler_filter_view.inc
+++ b/views_filter_view_handler_filter_view.inc
@@ -71,7 +71,7 @@ class views_filter_view_handler_filter_view extends views_handler_filter {
    *   The items of the view
    */
   function get_view_items($name, $display) {
-    $items = views_filter_view_get_items($name, $display);
+    $items = views_filter_view_get_items($name, $display, $this->view->query->base_field);
     return $items;
   }
 }
