--- ./include/defines.inc.php.orig	2014-07-21 17:38:56.000000000 +0200
+++ ./include/defines.inc.php	2014-08-22 07:40:30.000000000 +0200
@@ -76,8 +76,9 @@
 define('EXTACK_OPTION_UNACK',	1);
 define('EXTACK_OPTION_BOTH',	2);
 
-define('TRIGGERS_OPTION_ONLYTRUE',	1);
-define('TRIGGERS_OPTION_ALL',		2);
+define('TRIGGERS_OPTION_RECENT_PROBLEM',	1);
+define('TRIGGERS_OPTION_ALL',	2);
+define('TRIGGERS_OPTION_IN_PROBLEM',		3);
 
 define('ZBX_ACK_STS_ANY',				1);
 define('ZBX_ACK_STS_WITH_UNACK',		2);
--- ./include/blocks.inc.php.orig	2014-07-17 15:49:47.000000000 +0200
+++ ./include/blocks.inc.php	2014-08-22 07:46:58.000000000 +0200
@@ -341,7 +341,7 @@
 			$groupRow->addItem($group['nodename']);
 		}
 
-		$name = new CLink($group['name'], 'tr_status.php?groupid='.$group['groupid'].'&hostid=0&show_triggers='.TRIGGERS_OPTION_ONLYTRUE);
+		$name = new CLink($group['name'], 'tr_status.php?groupid='.$group['groupid'].'&hostid=0&show_triggers='.TRIGGERS_OPTION_RECENT_PROBLEM);
 		$groupRow->addItem($name);
 
 		foreach ($group['tab_priority'] as $severity => $data) {
@@ -603,7 +603,7 @@
 			$group_row->addItem($group['nodename']);
 		}
 
-		$name = new CLink($group['name'], 'tr_status.php?groupid='.$group['groupid'].'&hostid=0&show_triggers='.TRIGGERS_OPTION_ONLYTRUE);
+		$name = new CLink($group['name'], 'tr_status.php?groupid='.$group['groupid'].'&hostid=0&show_triggers='.TRIGGERS_OPTION_RECENT_PROBLEM);
 		$group_row->addItem($name);
 		$group_row->addItem(new CCol($hosts_data[$group['groupid']]['ok'], 'normal'));
 
@@ -636,7 +636,7 @@
 					$host_data = $lastUnack_host_list[$hostid];
 
 					$r = new CRow();
-					$r->addItem(new CLink($host_data['host'], 'tr_status.php?groupid='.$group['groupid'].'&hostid='.$hostid.'&show_triggers='.TRIGGERS_OPTION_ONLYTRUE));
+					$r->addItem(new CLink($host_data['host'], 'tr_status.php?groupid='.$group['groupid'].'&hostid='.$hostid.'&show_triggers='.TRIGGERS_OPTION_RECENT_PROBLEM));
 
 					foreach ($lastUnack_host_list[$host['hostid']]['severities'] as $severity => $trigger_count) {
 						if (!is_null($filter['severity']) && !isset($filter['severity'][$severity])) {
@@ -682,7 +682,7 @@
 				$host_data = $problematic_host_list[$hostid];
 
 				$r = new CRow();
-				$r->addItem(new CLink($host_data['host'], 'tr_status.php?groupid='.$group['groupid'].'&hostid='.$hostid.'&show_triggers='.TRIGGERS_OPTION_ONLYTRUE));
+				$r->addItem(new CLink($host_data['host'], 'tr_status.php?groupid='.$group['groupid'].'&hostid='.$hostid.'&show_triggers='.TRIGGERS_OPTION_RECENT_PROBLEM));
 
 				foreach ($problematic_host_list[$host['hostid']]['severities'] as $severity => $trigger_count) {
 					if (!is_null($filter['severity'])&&!isset($filter['severity'][$severity])) {
--- ./tr_status.php.orig	2014-07-17 15:49:50.000000000 +0200
+++ ./tr_status.php	2014-08-22 07:57:05.000000000 +0200
@@ -105,7 +105,7 @@
 if (isset($_REQUEST['filter_rst'])) {
 	$_REQUEST['show_details'] = 0;
 	$_REQUEST['show_maintenance'] = 1;
-	$_REQUEST['show_triggers'] = TRIGGERS_OPTION_ONLYTRUE;
+	$_REQUEST['show_triggers'] = TRIGGERS_OPTION_RECENT_PROBLEM;
 	$_REQUEST['show_events'] = EVENTS_OPTION_NOEVENT;
 	$_REQUEST['ack_status'] = ZBX_ACK_STS_ANY;
 	$_REQUEST['show_severity'] = TRIGGER_SEVERITY_NOT_CLASSIFIED;
@@ -115,7 +115,24 @@
 }
 
 // show triggers
-$_REQUEST['show_triggers'] = isset($_REQUEST['show_triggers']) ? $_REQUEST['show_triggers'] : TRIGGERS_OPTION_ONLYTRUE;
+if (hasRequest('show_triggers')) {
+	if (getRequest('show_triggers') != TRIGGERS_OPTION_ALL) {
+		CProfile::update('web.tr_status.filter.show_triggers', getRequest('show_triggers'), PROFILE_TYPE_INT);
+	}
+}
+else {
+	if (hasRequest('filter_set')) {
+		CProfile::update('web.tr_status.filter.show_triggers',
+			getRequest('show_triggers', TRIGGERS_OPTION_RECENT_PROBLEM), PROFILE_TYPE_INT
+		);
+		$_REQUEST['show_triggers'] = getRequest('show_triggers', TRIGGERS_OPTION_RECENT_PROBLEM);
+	}
+	else {
+		$_REQUEST['show_triggers'] = CProfile::get('web.tr_status.filter.show_triggers',
+			TRIGGERS_OPTION_RECENT_PROBLEM
+		);
+	}
+}
 
 // show events
 if (isset($_REQUEST['show_events'])) {
@@ -279,7 +296,8 @@
 
 $statusComboBox = new CComboBox('show_triggers', $showTriggers);
 $statusComboBox->addItem(TRIGGERS_OPTION_ALL, _('Any'));
-$statusComboBox->additem(TRIGGERS_OPTION_ONLYTRUE, _('Problem'));
+$statusComboBox->addItem(TRIGGERS_OPTION_RECENT_PROBLEM, _('Recent problem'));
+$statusComboBox->additem(TRIGGERS_OPTION_IN_PROBLEM, _('Problem'));
 $filterForm->addRow(_('Triggers status'), $statusComboBox);
 
 if ($config['event_ack_enable']) {
@@ -407,9 +425,12 @@
 if (!zbx_empty($_REQUEST['txt_select'])) {
 	$options['search'] = array('description' => $_REQUEST['txt_select']);
 }
-if ($showTriggers == TRIGGERS_OPTION_ONLYTRUE) {
+if ($showTriggers == TRIGGERS_OPTION_RECENT_PROBLEM) {
 	$options['only_true'] = 1;
 }
+elseif ($showTriggers == TRIGGERS_OPTION_IN_PROBLEM) {
+	$options['filter'] = array('value' => TRIGGER_VALUE_TRUE);
+}
 if ($ackStatus == ZBX_ACK_STS_WITH_UNACK) {
 	$options['withUnacknowledgedEvents'] = 1;
 }
