diff --git a/views/term_fields.views.inc b/views/term_fields.views.inc
index f58aeb7..cf92435 100644
--- a/views/term_fields.views.inc
+++ b/views/term_fields.views.inc
@@ -11,7 +11,7 @@
 function term_fields_views_data() {
   if ($fields = term_fields_get_fields('fields')) {
     $data = array();
-    
+
     $data['term_fields_term']['table'] = array(
       'group' => t('Term fields'),
       'join' => array(
@@ -34,7 +34,7 @@ function term_fields_views_data() {
         ),
       ),
     );
-    
+
     $data['term_fields_term_term']['table'] = array(
       'group' => t('Term fields'),
       'join' => array(
@@ -45,13 +45,29 @@ function term_fields_views_data() {
         ),
       ),
     );
-    
+
     foreach ($fields as $field) {
       if ($field_data = module_invoke($field->module, 'term_fields_api', 'views data', $field)) {
+        foreach($field_data as $k => $v) {
+           switch ($field->type) {
+             case 'text':
+              $field_data[$k]['filter']['handler'] = 'term_fields_handler_filter_text';
+               break;
+             case 'numeric':
+              $field_data[$k]['filter']['handler'] = 'term_fields_handler_filter_numeric';
+               break;
+             case 'date':
+              $field_data[$k]['filter']['handler'] = 'term_fields_handler_filter_date';
+               break;
+             default:
+              $field_data[$k]['filter']['handler'] = 'term_fields_handler_filter_text';
+               break;
+           }
+        }
         $data['term_fields_term'] += $field_data;
       }
     }
-    
+
     return $data;
   }
 }
@@ -77,6 +93,15 @@ function term_fields_views_handlers() {
       'term_fields_handler_field_date' => array(
         'parent' => 'views_handler_field_date',
       ),
+      'term_fields_handler_filter_text' => array(
+        'parent' => 'views_handler_filter_string',
+      ),
+      'term_fields_handler_filter_numeric' => array(
+        'parent' => 'views_handler_filter_numeric',
+      ),
+      'term_fields_handler_filter_date' => array(
+        'parent' => 'views_handler_filter_date',
+      ),
     )
   );
 }
