diff --git a/views_field_view.views.inc b/views_field_view.views.inc
index d82c9b1..4c15265 100644
--- a/views_field_view.views.inc
+++ b/views_field_view.views.inc
@@ -15,6 +15,13 @@ function views_field_view_views_data_alter(&$data) {
       'handler' => 'views_field_view_handler_field_view',
     ),
   );
+  $data['views']['view_count'] = array(
+    'title' => t('View count'),
+    'help' => t('Embed the count of view results as field, this can cause slow performance, so enable some caching.'),
+    'field' => array(
+      'handler' => 'views_field_view_handler_field_view_count',
+    ),
+  );
 }
 
 /**
@@ -26,6 +33,9 @@ function views_field_view_views_handlers() {
       'views_field_view_handler_field_view' => array(
         'parent' => 'views_handler_field',
       ),
+      'views_field_view_handler_field_view_count' => array(
+        'parent' => 'views_field_view_handler_field_view',
+      )
     ),
   );
 }
\ No newline at end of file
diff --git a/views_field_view_handler_field_view_count.inc b/views_field_view_handler_field_view_count.inc
new file mode 100644
index 0000000..ffd3ce4
--- /dev/null
+++ b/views_field_view_handler_field_view_count.inc
@@ -0,0 +1,87 @@
+<?php
+
+class views_field_view_handler_field_view_count extends views_field_view_handler_field_view {
+
+  function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    // not sure we'll able to aggregate count queries easily,
+    // so remove that feature for now
+    unset($form['query_aggregation']);
+  }
+
+  function view_total_count($external_args) {
+    $view = views_get_view($this->options['view']);
+
+    $view->set_display($this->options['display']);
+
+    $view->pre_execute($external_args);
+
+    // for performance reasons we are not calling $view->execute() here
+    // instead, we only use the count query
+    // TODO propose to move some of the code in the method view::execute() to separate methods,
+    // so they can easily be reused
+    if (empty($view->built)) {
+      $view->build($view->display_handler->display->id);
+    }
+
+    foreach (module_implements('views_pre_execute') as $module) {
+      $function = $module . '_views_pre_execute';
+      $function($view);
+    }
+
+    $count_query = db_rewrite_sql($view->build_info['count_query'], $view->base_table, $view->base_field, array('view' => &$view));
+
+    $args = $view->build_info['query_args'];
+
+    $replacements = module_invoke_all('views_query_substitutions', $view);
+
+    $count_query = 'SELECT COUNT(*) FROM (' . str_replace(array_keys($replacements), $replacements, $count_query) . ') count_alias';
+    if (is_array($args)) {
+      foreach ($args as $id => $arg) {
+        $args[$id] = str_replace(array_keys($replacements), $replacements, $arg);
+      }
+    }
+
+    // Allow for a view to query an external database.
+    if (isset($view->base_database)) {
+      db_set_active($view->base_database);
+      $external = TRUE;
+    }
+
+    $total_count = db_result(db_query($count_query, $args)) - $view->pager['offset'];
+
+    $view->post_execute();
+
+    return $total_count;
+  }
+
+  function render($values) {
+    static $running = array();
+    // Protect against the evil / recursion.
+    // Set the variable for yourself, this is not for the normal "user".
+    if (empty($running[$this->options['view']][$this->options['display']]) || variable_get('views_field_view_evil', FALSE)) {
+      if ($this->options['view']) {
+        $running[$this->options['view']][$this->options['display']] = TRUE;
+        $args = array();
+
+        foreach (explode(',', $this->options['arguments']) as $argument) {
+          $alter = array(
+            'text' => $argument,
+          );
+          $tokens = $this->get_render_tokens($alter);
+          $value = $this->render_altered($alter, $tokens);
+          $args[] = $value;
+        }
+
+        $output = $this->view_total_count($args);
+
+        $running[$this->options['view']][$this->options['display']] = FALSE;
+      }
+    }
+    else {
+      $output = t('Recursion, stop!');
+    }
+    return $output;
+  }
+}
