Index: src/ch/RuleEditNotEnoughSpaceDlg.cpp
===================================================================
diff -u -N -r3aa1103497018be2a7494e79e03c5f4c674485be -r9250a0229add10f4315e76848c755f337a16ae95
--- src/ch/RuleEditNotEnoughSpaceDlg.cpp	(.../RuleEditNotEnoughSpaceDlg.cpp)	(revision 3aa1103497018be2a7494e79e03c5f4c674485be)
+++ src/ch/RuleEditNotEnoughSpaceDlg.cpp	(.../RuleEditNotEnoughSpaceDlg.cpp)	(revision 9250a0229add10f4315e76848c755f337a16ae95)
@@ -52,6 +52,8 @@
 BEGIN_MESSAGE_MAP(RuleEditNotEnoughSpaceDlg,ictranslate::CLanguageDialog)
 	ON_BN_CLICKED(IDC_INCLUDE_MASK_CHECK, EnableControls)
 	ON_BN_CLICKED(IDC_EXCLUDE_MASK_CHECK, EnableControls)
+	ON_BN_CLICKED(IDC_INCLUDE_MASK_BUTTON, OnIncludeMaskButton)
+	ON_BN_CLICKED(IDC_EXCLUDE_MASK_BUTTON, OnExcludeMaskButton)
 END_MESSAGE_MAP()
 
 /////////////////////////////////////////////////////////////////////////////
@@ -82,6 +84,8 @@
 	EFeedbackResult eResult = m_rule.GetResult();
 	m_comboResponse.SelectComboResult(eResult == eResult_Unknown ? eResult_Ignore : eResult);
 
+	m_filterTypesWrapper.Init();
+
 	UpdateData(FALSE);
 
 	EnableControls();
@@ -107,6 +111,16 @@
 	}
 }
 
+void RuleEditNotEnoughSpaceDlg::OnIncludeMaskButton()
+{
+	m_filterTypesWrapper.StartTracking(true, *this, IDC_INCLUDE_MASK_BUTTON);
+}
+
+void RuleEditNotEnoughSpaceDlg::OnExcludeMaskButton()
+{
+	m_filterTypesWrapper.StartTracking(false, *this, IDC_EXCLUDE_MASK_BUTTON);
+}
+
 void RuleEditNotEnoughSpaceDlg::OnLanguageChanged()
 {
 	// combo result
@@ -121,6 +135,8 @@
 	// mask
 	m_ctlIncludeMask.EnableWindow(m_bUseIncludeMask);
 	m_ctlExcludeMask.EnableWindow(m_bUseExcludeMask);
+	GetDlgItem(IDC_INCLUDE_MASK_BUTTON)->EnableWindow(m_bUseIncludeMask);
+	GetDlgItem(IDC_EXCLUDE_MASK_BUTTON)->EnableWindow(m_bUseExcludeMask);
 }
 
 void RuleEditNotEnoughSpaceDlg::OnOK() 
@@ -141,3 +157,16 @@
 
 	CLanguageDialog::OnOK();
 }
+
+BOOL RuleEditNotEnoughSpaceDlg::OnCommand(WPARAM wParam, LPARAM lParam)
+{
+	if(HIWORD(wParam) == 0)
+	{
+		if(LOWORD(wParam) >= ID_POPUP_FILTER_FILE_WILDCARD && LOWORD(wParam) <= ID_POPUP_FILTER_SEPARATOR_CHAR)
+		{
+			CComboBox& rCombo = m_filterTypesWrapper.IsTrackingIncludeMask() ? m_ctlIncludeMask : m_ctlExcludeMask;
+			m_filterTypesWrapper.OnCommand(LOWORD(wParam), rCombo);
+		}
+	}
+	return ictranslate::CLanguageDialog::OnCommand(wParam, lParam);
+}