diff --git a/src/client/containers/SemanticPortal.js b/src/client/containers/SemanticPortal.js
index 817e2ef2bef12265314e18a030fdb9f185a7f976..1c2d0f0ddd34499bb2a62bbfeef7a2dfdcece53b 100644
--- a/src/client/containers/SemanticPortal.js
+++ b/src/client/containers/SemanticPortal.js
@@ -669,8 +669,9 @@ const mapStateToProps = state => {
   perspectiveConfig.forEach(perspective => {
     const { id, searchMode } = perspective
     if (searchMode && searchMode === 'federated-search') {
-      const { clientFSResults, clientFSFacetValues } = filterResults(state[id])
-      stateToProps.clientFSState = state[id]
+      const perspectiveState = state[id]
+      const { clientFSResults, clientFSFacetValues } = filterResults(perspectiveState)
+      stateToProps.clientFSState = perspectiveState
       stateToProps.clientFSResults = clientFSResults
       stateToProps.clientFSFacetValues = clientFSFacetValues
     } else {
diff --git a/src/client/selectors/index.js b/src/client/selectors/index.js
index 2538cdfad84445bee70261f094c0a87f5b16f7bc..8a30dc0eba7c2b7363c45f6aa523eb9068d6152c 100644
--- a/src/client/selectors/index.js
+++ b/src/client/selectors/index.js
@@ -20,12 +20,12 @@ export const filterResults = createSelector(
     }
 
     // Filter results by current facet selections
-    Object.values(facets).forEach(facet => {
-      const { facetID, filterType } = facet
-      if (filterType === 'clientFSLiteral' && facet.selectionsSet.size !== 0) {
-        results = results.filter(result => facet.selectionsSet.has(result[facetID]))
+    for (const [facetID, facet] of Object.entries(facets)) {
+      const { filterType, selectionsSet } = facet
+      if (filterType === 'clientFSLiteral' && selectionsSet.size !== 0) {
+        results = results.filter(result => selectionsSet.has(result[facetID]))
       }
-    })
+    }
     results = orderBy(results, sortBy, sortDirection)
 
     // Calculate values for all facets
@@ -48,8 +48,8 @@ export const filterResults = createSelector(
     }
     // Then handle all the remainder facets
     for (const result of results) {
-      Object.values(facets).forEach(facet => {
-        const { facetID, filterType, selectionsSet } = facet
+      for (const [facetID, facet] of Object.entries(facets)) {
+        const { filterType, selectionsSet } = facet
         if (facetID !== skipFacetID && filterType === 'clientFSLiteral' && has(result, facetID)) {
           const literalValue = result[facetID]
           if (!has(facetValues[facetID], literalValue)) {
@@ -64,7 +64,7 @@ export const filterResults = createSelector(
             facetValues[facetID][literalValue].instanceCount += 1
           }
         }
-      })
+      }
     }
     for (const facetID in facetValues) {
       facetValues[facetID] = orderBy(facetValues[facetID], 'prefLabel')