diff --git a/src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java b/src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java
index a14810572..d7281c4a8 100644
--- a/src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java
+++ b/src/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.java
@@ -1175,4 +1175,20 @@ public final class Functions {
     public static boolean at(Environment env, double lat, double lon) { // NO_UCD (unused code)
         return new LatLon(lat, lon).equalsEpsilon(center(env));
     }
+
+    /**
+     * Test wheather the list {@code lst} contains the {@code str} element.
+     * @param str String
+     * @param lst list
+     * @return true if {@code str} is contained
+     * @since xxx
+     */
+    public static boolean contains(String str, List<?> lst) { // NO_UCD (unused code)
+        for (int i = 0; i < lst.size(); i++) {
+            if (lst.get(i).equals(str)) {
+                return true;
+            }
+        }
+        return false;
+    }
 }
diff --git a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.java b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.java
index dbb6bdc84..6eb6ca2fb 100644
--- a/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.java
+++ b/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParserTest.java
@@ -612,4 +612,12 @@ public class MapCSSParserTest {
         sheet.loadStyleSource();
         assertTrue(sheet.getErrors().toString(), sheet.getErrors().isEmpty());
     }
+
+    @Test
+    public void testListContains() throws Exception {
+        Selector s1 = getParser("way[contains(\"x10\", split(\";\", tag(\"ref\")))]").selector();
+        assertTrue(s1.matches(new Environment(OsmUtils.createPrimitive("way ref=x10;x20"))));
+        assertFalse(s1.matches(new Environment(OsmUtils.createPrimitive("way ref=x20"))));
+        assertFalse(s1.matches(new Environment(new Way())));
+    }
 }
