diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 15463e0d33c93e6ea4726ee4d84a8f0e64a9f8d6..b666331a2c2a436a822fbdb55e71dc7242d92d34 100755
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -938,7 +938,10 @@ void LLInventoryFilter::toParams(Params& params) const
 {
 	params.filter_ops.types = getFilterObjectTypes();
 	params.filter_ops.category_types = getFilterCategoryTypes();
-	params.filter_ops.wearable_types = getFilterWearableTypes();
+	if (getFilterObjectTypes() & FILTERTYPE_WEARABLE)
+	{
+		params.filter_ops.wearable_types = getFilterWearableTypes();
+	}
 	params.filter_ops.date_range.min_date = getMinDate();
 	params.filter_ops.date_range.max_date = getMaxDate();
 	params.filter_ops.hours_ago = getHoursAgo();
@@ -957,7 +960,10 @@ void LLInventoryFilter::fromParams(const Params& params)
 
 	setFilterObjectTypes(params.filter_ops.types);
 	setFilterCategoryTypes(params.filter_ops.category_types);
-	setFilterWearableTypes(params.filter_ops.wearable_types);
+	if (params.filter_ops.wearable_types.isProvided())
+	{
+		setFilterWearableTypes(params.filter_ops.wearable_types);
+	}
 	setDateRange(params.filter_ops.date_range.min_date,   params.filter_ops.date_range.max_date);
 	setHoursAgo(params.filter_ops.hours_ago);
 	setShowFolderState(params.filter_ops.show_folder_state);