diff --git a/handlers/views_handler_filter.inc b/handlers/views_handler_filter.inc
index f9b0a10..a226f35 100644
--- a/handlers/views_handler_filter.inc
+++ b/handlers/views_handler_filter.inc
@@ -60,6 +60,7 @@ class views_handler_filter extends views_handler {
 
     $options['operator'] = array('default' => '=');
     $options['value'] = array('default' => '');
+    $options['argument_value'] = array('default' => array());
     $options['group'] = array('default' => '0');
     $options['exposed'] = array('default' => FALSE);
     $options['expose'] = array(
@@ -190,6 +191,51 @@ class views_handler_filter extends views_handler {
       $form['value']['#prefix'] = '<div class="views-group-box views-right-70">' . (isset($form['value']['#prefix']) ? $form['value']['#prefix'] : '');
       $form['value']['#suffix'] = (isset($form['value']['#suffix']) ? $form['value']['#suffix'] : '') . '</div>';
     }
+    $options = array('' => t('None'));
+    foreach ($this->view->display_handler->get_handlers('argument') as $id => $argument) {
+      $options[$id] = $argument->ui_name(TRUE);
+    }
+
+    // If a certain filter handler has multiple form elements both add the value as possible form element and update the depedency.
+    $option_definition = $this->option_definition();
+    if (isset($option_definition['value']['contains'])) {
+      foreach ($option_definition['value']['contains'] as $value => $definition) {
+        // Some fields uses 'value' in the form or as a child element. So take care about it.
+        if ($value == 'value') {
+          if (isset($form['value']['value'])) {
+            $values[$value] = array('title' => $form['value']['value']['#title'], 'weight' => $form['value']['value']['#weight']);
+            $form['value']['value']['#dependency']['edit-options-argument-value-' . $value] = array('');
+            $form['value']['value']['#dependency_count'] = count($form['value']['value']['#dependency']);
+          }
+          else {
+            $values[$value] = array('title' => $form['value']['#title'], 'weight' => $form['value']['#weight']);
+            $form['value']['#dependency']['edit-options-argument-value-' . $value] = array('');
+            $form['value']['#dependency_count'] = count($form['value']['#dependency']);
+          }
+        }
+        else {
+          $values[$value] = array('title' => $form['value'][$value]['#title'], 'weight' => $form['value'][$value]['#weight']);
+          $form['value'][$value]['#dependency']['edit-options-argument-value-' . $value] = array('');
+          $form['value'][$value]['#dependency_count'] = count($form['value'][$value]['#dependency']);
+        }
+      }
+    }
+    else {
+      $values = array('value' => array('title' => $form['value']['#title'], 'weight' => $form['value']['#weight']));
+      $form['value']['#dependency']['edit-options-argument-value-value'] = array('');
+    }
+
+    foreach ($values as $value => $setting) {
+      $form['argument_value'][$value] = array(
+        '#type' => 'select',
+        '#title' => t('Select value from argument for @field.', array('@field' => $setting['title'])),
+        '#options' => $options,
+        '#default_value' => isset($this->options['argument_value'][$value]) ? $this->options['argument_value'][$value] : '',
+        '#weight' => $setting['weight'],
+      );
+    }
+    $form['argument_value']['#prefix'] = '<div class="views-group-box views-right-70">' . (isset($form['argument_value']['#prefix']) ? $form['argument_value']['#prefix'] : '');
+    $form['argument_value']['#suffix'] = (isset($form['argument_value']['#suffix']) ? $form['argument_value']['#suffix'] : '') . '</div>';
   }
 
   /**
@@ -572,6 +618,27 @@ class views_handler_filter extends views_handler {
   }
 
   /**
+   * If pulling arguments from the filter is set, set $this->value here.
+   */
+  function pre_query() {
+    // If there are multiple values, store the value in $this->value as an array.
+    // else store a singular item in $this->value.
+    $count = count($this->options['argument_value']);
+    foreach ($this->options['argument_value'] as $value => $argument) {
+      if (!empty($argument)) {
+        if ($count == 1) {
+          $argument = $this->view->argument[$argument];
+          $this->value = $argument->get_value();
+        }
+        else {
+          $argument = $this->view->argument[$argument];
+          $this->value[$value] = $argument->get_value();
+        }
+      }
+    }
+  }
+
+  /**
    * Add this filter to the query.
    *
    * Due to the nature of fapi, the value and the operator have an unintended
