diff --git a/plugins/cerberusweb.core/api/uri/display.php b/plugins/cerberusweb.core/api/uri/display.php
index e116256..f85fe79 100644
--- a/plugins/cerberusweb.core/api/uri/display.php
+++ b/plugins/cerberusweb.core/api/uri/display.php
@@ -1177,7 +1177,20 @@ class ChDisplayPage extends CerberusPageExtension {
 		$tpl->display('file:' . $this->_TPL_PATH . 'display/modules/history/index.tpl');
 	}
 
+	function doTicketTasksScopeAction() {
+		@$ticket_id = DevblocksPlatform::importGPC($_REQUEST['id'],'integer');
+		@$scope = DevblocksPlatform::importGPC($_REQUEST['scope'],'string','');
+		
+		$visit = CerberusApplication::getVisit();
+		$visit->set('display.task.scope', $scope);
+
+		$ticket = DAO_Ticket::getTicket($ticket_id);
+
+		DevblocksPlatform::redirect(new DevblocksHttpResponse(array('display',$ticket->mask,'tasks')));
+	}
+	
 	function showTasksAction() {
+		$visit = CerberusApplication::getVisit(); /* @var $visit CerberusVisit */
 		$translate = DevblocksPlatform::getTranslationService();
 		
 		@$ticket_id = DevblocksPlatform::importGPC($_REQUEST['ticket_id'],'integer');
@@ -1185,9 +1198,16 @@ class ChDisplayPage extends CerberusPageExtension {
 		$tpl = DevblocksPlatform::getTemplateService();
 		$tpl->assign('path', $this->_TPL_PATH);
 		
+		// Ticket
 		$ticket = DAO_Ticket::getTicket($ticket_id);
 		$tpl->assign('ticket', $ticket);
 		
+		// Scope
+		$scope = $visit->get('display.task.scope', '');
+		
+		// [TODO] Sanitize scope preference		
+		
+		// Defaults
 		$defaults = new C4_AbstractViewModel();
 		$defaults->class_name = 'C4_TaskView';
 		$defaults->id = 'ticket_tasks';
@@ -1199,10 +1219,34 @@ class ChDisplayPage extends CerberusPageExtension {
 		);
 		
 		$view = C4_AbstractViewLoader::getView('ticket_tasks', $defaults);
-		$view->params = array(
-			SearchFields_Task::SOURCE_EXTENSION => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_EXTENSION,'=','cerberusweb.tasks.ticket'),
-			SearchFields_Task::SOURCE_ID => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_ID,'=',$ticket_id),
-		);
+		
+		switch($scope) {
+			case 'all':
+				$view->params = array(
+					SearchFields_Task::SOURCE_EXTENSION => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_EXTENSION,'=','cerberusweb.tasks.ticket'),
+					SearchFields_Task::SOURCE_ID => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_ID,'=',$ticket_id),
+				);
+				break;
+				
+			case 'complete':
+				$view->params = array(
+					SearchFields_Task::SOURCE_EXTENSION => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_EXTENSION,'=','cerberusweb.tasks.ticket'),
+					SearchFields_Task::SOURCE_ID => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_ID,'=',$ticket_id),
+					SearchFields_Task::IS_COMPLETED => new DevblocksSearchCriteria(SearchFields_Task::IS_COMPLETED,'=',1),
+				);
+				break;
+				
+			default:
+			case 'incomplete':
+				$view->params = array(
+					SearchFields_Task::SOURCE_EXTENSION => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_EXTENSION,'=','cerberusweb.tasks.ticket'),
+					SearchFields_Task::SOURCE_ID => new DevblocksSearchCriteria(SearchFields_Task::SOURCE_ID,'=',$ticket_id),
+					SearchFields_Task::IS_COMPLETED => new DevblocksSearchCriteria(SearchFields_Task::IS_COMPLETED,'=',0),
+				);
+				break;
+		}
+		$tpl->assign('scope', $scope);
+		
 		$tpl->assign('view', $view);
 		
 		C4_AbstractViewLoader::setView($view->id, $view);
diff --git a/plugins/cerberusweb.core/strings.xml b/plugins/cerberusweb.core/strings.xml
index 7cec87f..2f463c0 100644
--- a/plugins/cerberusweb.core/strings.xml
+++ b/plugins/cerberusweb.core/strings.xml
@@ -1331,6 +1331,9 @@ For example: *receipt*</seg></tuv>
 		<tu tuid='tasks.add'>
 			<tuv xml:lang="en_US"><seg>Add Task</seg></tuv>
 		</tu>
+		<tu tuid='tasks.incomplete'>
+			<tuv xml:lang="en_US"><seg>Incomplete</seg></tuv>
+		</tu>
 		<tu tuid='tasks.complete'>
 			<tuv xml:lang="en_US"><seg>Complete</seg></tuv>
 		</tu>
diff --git a/plugins/cerberusweb.core/templates/display/modules/tasks/index.tpl b/plugins/cerberusweb.core/templates/display/modules/tasks/index.tpl
index 2d9324e..c7f7a3a 100644
--- a/plugins/cerberusweb.core/templates/display/modules/tasks/index.tpl
+++ b/plugins/cerberusweb.core/templates/display/modules/tasks/index.tpl
@@ -1,7 +1,26 @@
-{if $active_worker->hasPriv('core.tasks.actions.create')}
-<form action="{devblocks_url}{/devblocks_url}" style="margin-bottom:5px;">
-	<button type="button" onclick="genericAjaxPanel('c=tasks&a=showTaskPeek&id=0&view_id={$view->id}&link_namespace=cerberusweb.tasks.ticket&link_object_id={$ticket->id}',this,false,'500px',{literal}function(o){document.getElementById('formTaskPeek').title.focus();}{/literal});"><img src="{devblocks_url}c=resource&p=cerberusweb.core&f=images/gear_add.gif{/devblocks_url}" align="top"> {'tasks.add'|devblocks_translate}</button>
+<form action="{devblocks_url}{/devblocks_url}" method="post" style="margin-bottom:5px;">
+<input type="hidden" name="c" value="display">
+<input type="hidden" name="a" value="">
+<input type="hidden" name="id" value="{$ticket->id}">
+	
+	<table cellpadding="0" cellspacing="0" border="0" width="100%">
+		<tr>
+			<td width="1%" nowrap="nowrap">
+				{if $active_worker->hasPriv('core.tasks.actions.create')}
+					<button type="button" onclick="genericAjaxPanel('c=tasks&a=showTaskPeek&id=0&view_id={$view->id}&link_namespace=cerberusweb.tasks.ticket&link_object_id={$ticket->id}',this,false,'500px',{literal}function(o){document.getElementById('formTaskPeek').title.focus();}{/literal});"><img src="{devblocks_url}c=resource&p=cerberusweb.core&f=images/gear_add.gif{/devblocks_url}" align="top"> {'tasks.add'|devblocks_translate}</button>
+				{/if}
+			</td>
+			<td width="98%"></td>
+			<td width="1%" nowrap="nowrap" align="right">
+				<b>Task status filter:</b> 
+				<label title="{'tasks.incomplete'|devblocks_translate|capitalize}">
+				<input type="radio" name="scope" value="incomplete" onclick="this.form.a.value='doTicketTasksScope';this.form.submit();" 
+				{if empty($scope) || 'incomplete'==$scope}checked="checked"{/if}> {'tasks.incomplete'|devblocks_translate|capitalize}</label>
+				<label><input type="radio" name="scope" value="complete" onclick="this.form.a.value='doTicketTasksScope';this.form.submit();" {if 'complete'==$scope}checked="checked"{/if}> {'tasks.complete'|devblocks_translate|capitalize}</label>
+				<label><input type="radio" name="scope" value="all" onclick="this.form.a.value='doTicketTasksScope';this.form.submit();" {if 'all'==$scope}checked="checked"{/if}> {'common.all'|devblocks_translate|capitalize}</label>
+			</td>
+		</tr>
+	</table>
 </form>
-{/if}
-
-<div id="viewticket_tasks">{$view->render()}</div>
+
+<div id="viewticket_tasks">{$view->render()}</div>

