diff --git a/frontend/src/metabase/selectors/metadata.js b/frontend/src/metabase/selectors/metadata.js
index 08aead6031130ffca5ee908523e874edbcf42329..9b715d3c92abd7ee9bf6df080c197027b7f73c0e 100644
--- a/frontend/src/metabase/selectors/metadata.js
+++ b/frontend/src/metabase/selectors/metadata.js
@@ -159,7 +159,6 @@ const patchBooleanFieldValues_HACK = (valueArray) => {
 // We want that we have a distinct selector for each field id combination, and for that reason
 // we export a method that creates a new selector; see
 // https://github.com/reactjs/reselect#sharing-selectors-with-props-across-multiple-components
-// TODO Atte Keinänen 7/20/17: How should this work for remapped values?
 // TODO Atte Keinänen 7/20/17: Should we have any thresholds if the count of field values is high or we have many (>2?) fields?
 export const makeGetMergedParameterFieldValues = () => {
     return createFieldValuesEqualSelector(getParameterFieldValuesByFieldId, (fieldValues) => {
@@ -172,10 +171,14 @@ export const makeGetMergedParameterFieldValues = () => {
             const singleFieldValues = fieldValues[fieldIds[0]]
             return patchBooleanFieldValues_HACK(singleFieldValues);
         } else {
-            const sortedMergedValues = _.flatten(Object.values(fieldValues), true).sort()
+            const sortedMergedValues = _.chain(Object.values(fieldValues))
+                .flatten(true)
+                // Use remapped value for sorting if it is available
+                .sortBy(fieldValue => fieldValue.length === 2 ? fieldValue[1] : fieldValue[0])
+                .value()
+
             // run the uniqueness comparision always against a non-remapped value
-            // we can use `isSorted = true` flag to speed up _.uniq as we just sorted the values
-            return _.uniq(sortedMergedValues, true, (fieldValue) => fieldValue[0]);
+            return _.uniq(sortedMergedValues, false, (fieldValue) => fieldValue[0]);
         }
     });
 }