diff --git includes/handlers.inc includes/handlers.inc
index f348e4b..a08a7b2 100644
--- includes/handlers.inc
+++ includes/handlers.inc
@@ -250,7 +250,7 @@ class views_handler extends views_object {
    */
   function init(&$view, $options) {
     $this->view = &$view;
-    $this->unpack_options($this->options, $options);
+    $this->unpack_options($this->options, $options, NULL, TRUE, TRUE, array($view->current_display, $this->handler_type, $options['table'], $options['field']));
 
     // This exist on most handlers, but not all. So they are still optional.
     if (isset($options['table'])) {
diff --git plugins/views_plugin_display.inc plugins/views_plugin_display.inc
index c186567..f089076 100644
--- plugins/views_plugin_display.inc
+++ plugins/views_plugin_display.inc
@@ -743,6 +743,7 @@ class views_plugin_display extends views_plugin {
 
         $handler = views_get_handler($info['table'], $info['field'], $handler_type, $override);
         if ($handler) {
+          $handler->handler_type = $handler_type;
           $handler->init($this->view, $info);
           $this->handlers[$type][$id] = &$handler;
         }
diff --git tests/views_plugin_localization_test.inc tests/views_plugin_localization_test.inc
index 7d009d9..f90391c 100644
--- tests/views_plugin_localization_test.inc
+++ tests/views_plugin_localization_test.inc
@@ -6,15 +6,22 @@
  */
 class views_plugin_localization_test extends views_plugin_localization {
   /**
-   * Store the strings which was translated.
+   * Stores the strings which was translated.
    */
   var $translated_strings;
+
+  /**
+   * Stores the keys for all translations.
+   */
+  var $keys;
+
   /**
    * Return the string and take sure that the test can find out whether the
    * string got translated.
    */
   function translate_string($string, $keys = array()) {
     $this->translated_strings[] = $string;
+    $this->keys[] = $keys;
     return $string . "-translated";
   }
 
diff --git tests/views_translatable.test tests/views_translatable.test
index d3115f4..8c6c810 100644
--- tests/views_translatable.test
+++ tests/views_translatable.test
@@ -39,6 +39,14 @@ class viewsTranslatableTest extends ViewsSqlTest {
     // Reset the plugin data.
     views_fetch_plugin_data(NULL, NULL, TRUE);
     $this->strings = array('Defaults1', 'Apply1', 'Sort By1', 'Asc1', 'Desc1', 'more1', 'Reset1', 'Offset1', 'Defaults1', 'title1', 'Items per page1', 'fieldlabel1', 'filterlabel1');
+//     $this->keys = array(
+//       array($view_name, $display_id, 'title'),
+//       array($view_name, $display_id, 'exposed_form', 'exposed_form', '),
+//       array($view_name, $display_id, 'title'),
+//       array($view_name, $display_id, 'title'),
+//       array($view_name, $display_id, 'title'),
+//       
+//     );
   }
 
   /**
@@ -84,6 +92,7 @@ class viewsTranslatableTest extends ViewsSqlTest {
       $expected_strings[] = $string .= '-translated';
     }
     $this->assertEqual(sort($expected_strings), sort($view->localization_plugin->translated_strings), 'Take sure that every string got loaded translated');
+    debug($view->localization_plugin->keys);
   }
 
   public function view_unpack_translatable() {
