diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake
index 06227b3fe2336190d3277444c9b1623ac95d1d34..4c0bdfc46c6f0b15df1e8b489000a1bac6d301cb 100755
--- a/indra/cmake/Hunspell.cmake
+++ b/indra/cmake/Hunspell.cmake
@@ -17,6 +17,6 @@ else (USESYSTEMLIBS)
   else()
     message(FATAL_ERROR "Invalid platform")
   endif()
-  set(HUNSPELL_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/hunspell)
+  set(HUNSPELL_INCLUDE_DIR ${LIBS_PREBUILT_DIR}/include/hunspell)
   use_prebuilt_binary(dictionaries)
 endif (USESYSTEMLIBS)
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index f0b5d75084c86b750c203ac3538cead760e5bebe..74f11b3be0760a642ffb64533afa896136eb54f5 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -96,7 +96,7 @@ include_directories(
     ${LLLOGIN_INCLUDE_DIRS}
     ${UPDATER_INCLUDE_DIRS}
     ${LIBS_PREBUILT_DIR}/include/collada
-    ${LIBS_PREBUILD_DIR}/include/hunspell
+    ${HUNSPELL_INCLUDE_DIR}
     ${OPENAL_LIB_INCLUDE_DIRS}
     ${LIBS_PREBUILT_DIR}/include/collada/1.4
     ${LLAPPEARANCE_INCLUDE_DIRS}
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 5948eda0f5ba598aa4730ba0b43aa5c103928295..577fd1e85bda1728d9981eeac2c22c171b4dd507 100755
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -654,22 +654,36 @@ void LLInventoryFilter::setHoursAgo(U32 hours)
 	{
 		bool are_date_limits_valid = mFilterOps.mMinDate == time_min() && mFilterOps.mMaxDate == time_max();
 
-		bool is_increasing = hours > mFilterOps.mHoursAgo;
-		bool is_decreasing = hours < mFilterOps.mHoursAgo;
-		bool is_increasing_from_zero = is_increasing && !mFilterOps.mHoursAgo && !isSinceLogoff();
-
 		// *NOTE: need to cache last filter time, in case filter goes stale
-		BOOL less_restrictive;
-		BOOL more_restrictive;
-		if (FILTERDATEDIRECTION_NEWER == mFilterOps.mDateSearchDirection)
-		{
-			less_restrictive = ((are_date_limits_valid && ((is_increasing && mFilterOps.mHoursAgo))) || !hours);
-			more_restrictive = ((are_date_limits_valid && (!is_increasing && hours)) || is_increasing_from_zero);
-		}
-		else
+		bool less_restrictive = false;
+		bool more_restrictive = false;
+
+		switch (mFilterOps.mDateSearchDirection)
 		{
-			less_restrictive = ((are_date_limits_valid && ((is_decreasing && mFilterOps.mHoursAgo))) || !hours);
-			more_restrictive = ((are_date_limits_valid && (!is_decreasing && hours)) || is_increasing_from_zero);
+			case FILTERDATEDIRECTION_NEWER:
+				less_restrictive = ((are_date_limits_valid && (hours > mFilterOps.mHoursAgo
+															   && mFilterOps.mHoursAgo))
+									|| !hours);
+				
+				more_restrictive = ((are_date_limits_valid && (hours < mFilterOps.mHoursAgo
+															   && hours))
+									|| (hours > mFilterOps.mHoursAgo
+										&& !mFilterOps.mHoursAgo
+										&& !isSinceLogoff()));
+				break;
+			case FILTERDATEDIRECTION_OLDER:
+				less_restrictive = ((are_date_limits_valid && (hours < mFilterOps.mHoursAgo
+															   && mFilterOps.mHoursAgo))
+								 || !hours);
+				
+				more_restrictive = ((are_date_limits_valid && (hours > mFilterOps.mHoursAgo
+															   && hours))
+									|| (hours < mFilterOps.mHoursAgo
+										&& !mFilterOps.mHoursAgo
+										&& !isSinceLogoff()));
+				break;
+			default:
+				break;
 		}
 		
 		mFilterOps.mHoursAgo = hours;