diff --git casetracker.views.inc casetracker.views.inc
index 3b184a4..93745fe 100644
--- casetracker.views.inc
+++ casetracker.views.inc
@@ -53,6 +53,17 @@ function casetracker_views_data_casetracker_case() {
       'help' => t('Filter Case Tracker cases by the assigned user.'),
     ),
   );
+  $data['casetracker_case']['assign_to_extra'] = array(
+    'title' => t('Case assigned to or created by current user'),
+    'filter' => array(
+      'handler' => 'casetracker_views_handler_filter_user_created_or_assigned',
+      'help' => t('Filter Case Tracker cases that were created or assigned to the current user.'),
+    ),
+    'argument' => array(
+      'handler' => 'casetracker_views_handler_argument_user_created_or_assigned',
+      'help' => t('Filter Case Tracker cases that were created or assigned to a determinate user.'),
+    ),
+  );
   $data['casetracker_case']['case_priority_id'] = array(
     'title' => t('Case priority'),
     'field' => array(
@@ -208,6 +219,9 @@ function casetracker_views_handlers() {
       'casetracker_views_handler_filter_project_options' => array(
         'parent' => 'views_handler_filter_many_to_one',
       ),
+      'casetracker_views_handler_filter_user_created_or_assigned' => array(
+        'parent' => 'views_handler_filter_in_operator',
+      ),
 
       // arguments: casetracker_case
       'casetracker_views_handler_argument_status' => array(
@@ -219,6 +233,9 @@ function casetracker_views_handlers() {
       'casetracker_views_handler_argument_type' => array(
         'parent' => 'views_handler_argument_numeric',
       ),
+      'casetracker_views_handler_argument_user_created_or_assigned' => array(
+        'parent' => 'views_handler_argument_user_uid',
+      ),
 
       // filters: casetracker_project
       'casetracker_views_handler_filter_project_published' => array(
diff --git includes/casetracker_views_handler_argument_user_created_or_assigned.inc includes/casetracker_views_handler_argument_user_created_or_assigned.inc
new file mode 100644
index 0000000..9a0ace5
--- /dev/null
+++ includes/casetracker_views_handler_argument_user_created_or_assigned.inc
@@ -0,0 +1,27 @@
+<?php
+// $Id$
+
+class casetracker_views_handler_argument_user_created_or_assigned extends views_handler_argument_user_uid {
+
+  function query() {
+    $this->ensure_my_table();
+    $node_table = $this->query->ensure_table('node', $this->relationship);
+
+    if (!empty($this->options['break_phrase'])) {
+      views_break_phrase($this->argument, $this);
+    }
+    else {
+      $this->value = array($this->argument);
+    }
+
+    if (count($this->value) > 1) {
+      $operator = empty($this->options['not']) ? 'IN' : 'NOT IN';
+      $placeholders = implode(', ', array_fill(0, sizeof($this->value), '%d'));
+      $this->query->add_where(0, "$this->table_alias.assign_to $operator ($placeholders) OR $node_table.uid $operator ($placeholders)", $this->value, $this->value);
+    }
+    else {
+      $operator = empty($this->options['not']) ? '=' : '!=';
+      $this->query->add_where(0, "$this->table_alias.assign_to $operator %d OR $node_table.uid $operator %d", $this->argument, $this->argument);
+    }
+  }
+}
diff --git includes/casetracker_views_handler_filter_user_created_or_assigned.inc includes/casetracker_views_handler_filter_user_created_or_assigned.inc
new file mode 100644
index 0000000..4c0bf4f
--- /dev/null
+++ includes/casetracker_views_handler_filter_user_created_or_assigned.inc
@@ -0,0 +1,43 @@
+<?php
+// $Id$
+
+class casetracker_views_handler_filter_user_created_or_assigned extends views_handler_filter_in_operator {
+
+  function get_value_options() { 
+    $this->value_options = array(
+      'assigned' => t('Assigned to me'),
+      'created' => t('Created by me'),
+    ); 
+  }
+
+  function operators() {
+    return array(
+      'in' => array(
+        'title' => t('Is (using OR operator)'),
+        'short' => t('in'),
+        'short_single' => t('='),
+        'method' => 'op_simple',
+        'values' => 1,
+      ),
+    );
+  }
+
+  function op_simple() {
+    if (empty($this->value)) {
+      return;
+    }
+    if (is_array($this->value)) {
+      $case_table = $this->ensure_my_table();
+      $node_table = $this->query->ensure_table('node', $this->relationship);
+      if (in_array('created', $this->value) && in_array('assigned', $this->value)) {
+        $this->query->add_where($this->options['group'], "***CURRENT_USER*** <> 0 AND ($case_table.assign_to = ***CURRENT_USER*** OR $node_table.uid = ***CURRENT_USER***)");        
+      }
+      elseif (in_array('assigned', $this->value)) {
+        $this->query->add_where($this->options['group'], "***CURRENT_USER*** <> 0 AND $case_table.assign_to = ***CURRENT_USER***");        
+      }
+      elseif (in_array('created', $this->value)) {
+        $this->query->add_where($this->options['group'], "***CURRENT_USER*** <> 0 AND $node_table.uid = ***CURRENT_USER***");        
+      }
+    }    
+  }
+}
