diff -ruNwp ../tmp/i18n/i18n.module ./i18n.module
--- ../tmp/i18n/i18n.module	2008-09-25 21:16:11.000000000 +0200
+++ ./i18n.module	2008-10-23 12:09:50.000000000 +0200
@@ -802,3 +802,10 @@ function _i18n_content_language_options(
     LANGUAGE_SUPPORT_EXTENDED => t('Extended - All defined languages will be allowed.')
   );
 }
+
+function i18n_views_api() {
+  return array(
+    'api' => '2.0',
+    'path' => drupal_get_path('module', 'i18n') . '/includes',
+  );
+}
\ No newline at end of file
diff -ruNwp ../tmp/i18n/includes/content_negotiation_filter_handler.inc ./includes/content_negotiation_filter_handler.inc
--- ../tmp/i18n/includes/content_negotiation_filter_handler.inc	1970-01-01 01:00:00.000000000 +0100
+++ ./includes/content_negotiation_filter_handler.inc	2008-10-23 12:19:45.000000000 +0200
@@ -0,0 +1,16 @@
+<?php
+
+class content_negotiation_filter_handler extends views_handler_filter {
+  function query() {
+    $table_alias = $this->query->ensure_table('node');
+    $where = i18n_db_rewrite_where($table_alias, 'node');
+    $this->query->add_where($this->options['group'], $where);
+  }
+  
+  function option_definition() {
+    $options = parent::option_definition();
+    $options['operator']['default'] = '';
+    $options['value']['default'] = '';
+    return $options;
+  }
+}
diff -ruNwp ../tmp/i18n/includes/i18n.views.inc ./includes/i18n.views.inc
--- ../tmp/i18n/includes/i18n.views.inc	1970-01-01 01:00:00.000000000 +0100
+++ ./includes/i18n.views.inc	2008-10-23 12:25:11.000000000 +0200
@@ -0,0 +1,27 @@
+<?php
+
+function i18n_views_data() {
+  $data['node']['content_negotiation'] = array(
+    'group' => t('i18n'),
+    'title' => t('Content negotiation'),
+    'help' => t('Removes the nodes that are not valid according to the content selection mode'),
+    'filter' => array(
+      'handler' => 'content_negotiation_filter_handler',
+    ),
+  );
+  return $data;
+}
+
+/**
+ * Implementation of hook_views_handlers
+ */
+function i18n_views_handlers() {
+  return array(
+    'handlers' => array(
+      'content_negotiation_filter_handler' => array(
+        'parent' => 'views_handler_filter',
+        'file' => 'includes/content_negotiation_filter_handler.inc' 
+      ),
+    ),
+  );
+}
