diff --git data.views.inc data.views.inc
index bc6cd6e..52db293 100644
--- data.views.inc
+++ data.views.inc
@@ -125,29 +125,25 @@ function data_get_views_handler_options($type = NULL, $reset = FALSE) {
   static $handlers;
   if (!isset($handlers) || $reset) {
     $handlers = array();
-    $handlers['field'] = array(
-      'views_handler_field' => 'views_handler_field',
-      'views_handler_field_numeric' => 'views_handler_field_numeric',
-      'views_handler_field_date' => 'views_handler_field_date',
-      'views_handler_field_url' => 'views_handler_field_url',
-      'views_handler_field_data_markup' => 'views_handler_field_data_markup',
-    );
-    $handlers['filter'] = array(
-      'views_handler_filter_date' => 'views_handler_filter_date',
-      'views_handler_filter_float' => 'views_handler_filter_float',
-      'views_handler_filter_numeric' => 'views_handler_filter_numeric',
-      'views_handler_filter_string' => 'views_handler_filter_string',
-    );
-    $handlers['argument'] = array(
-      'views_handler_argument' => 'views_handler_argument',
-      'views_handler_argument_date' => 'views_handler_argument_date',
-      'views_handler_argument_numeric' => 'views_handler_argument_numeric',
-      'views_handler_argument_string' => 'views_handler_argument_string',
-    );
-    $handlers['sort'] = array(
-      'views_handler_sort' => 'views_handler_sort',
-      'views_handler_sort_date' => 'views_handler_sort_date',
+    module_load_include('inc', 'views', 'includes/base');
+    module_load_include('inc', 'views', 'includes/handlers');
+    $available_handlers = views_discover_handlers();
+    $handlers = array(
+      'field',
+      'filter',
+      'argument',
+      'sort',
     );
+    foreach ($available_handlers as $available_handler => $def) {
+      foreach($handlers as $handler) {
+        $pattern = '/^views_handler_';
+        $pattern .= $handler;
+        $pattern .= '([_][^_.]+)*$/';
+        if (preg_match($pattern, $available_handler)) {
+          $handlers[$handler][$available_handler] = $available_handler;
+        };
+      };
+    };
     // Allow other modules to alter the list of available handlers.
     drupal_alter('data_views_handlers', $handlers);
   }
