diff --git a/src/adql/parser/feature/FeatureSet.java b/src/adql/parser/feature/FeatureSet.java
index e857e2dc569794361aeb1fdb26e21d3a9de49433..9310c899262b55b5fa5a82f517a376ec70f200bf 100644
--- a/src/adql/parser/feature/FeatureSet.java
+++ b/src/adql/parser/feature/FeatureSet.java
@@ -427,8 +427,8 @@ public class FeatureSet implements Iterable<LanguageFeature> {
 	 * @see #getAvailableFeatures()
 	 */
 	public final void unsupportAll() {
-		// unsupport all available features:
-		for(LanguageFeature feature : availableFeatures)
+		// unsupport all features currently supported:
+		for(LanguageFeature feature : this)
 			unsupport(feature);
 
 		// also unsupport any UDF:
@@ -557,22 +557,22 @@ public class FeatureSet implements Iterable<LanguageFeature> {
 	   ********************************************************************** */
 
 	/*public static final LanguageFeature ILIKE = new LanguageFeature(FeatureType.ADQL_STRING, "ILIKE"); // TODO ILIKE
-	
+
 	public static final LanguageFeature UNION = new LanguageFeature(FeatureType.ADQL_SETS, "UNION"); // TODO UNION
 	public static final LanguageFeature EXCEPT = new LanguageFeature(FeatureType.ADQL_SETS, "EXCEPT"); // TODO EXCEPT
 	public static final LanguageFeature INTERSECT = new LanguageFeature(FeatureType.ADQL_SETS, "INTERSECT");  // TODO INTERSECT
-	
+
 	public static final LanguageFeature WITH = new LanguageFeature(FeatureType.ADQL_COMMON_TABLE, "WITH");  // TODO WITH
-	
+
 	public static final LanguageFeature CAST = new LanguageFeature(FeatureType.ADQL_TYPE, "CAST");  // TODO CAST
-	
+
 	public static final LanguageFeature IN_UNIT = new LanguageFeature(FeatureType.ADQL_UNIT, "IN_UNIT");  // TODO IN_UNIT
-	
+
 	public static final LanguageFeature BIT_AND = new LanguageFeature(FeatureType.ADQL_BITWISE, "BIT_AND");  // TODO BIT_AND
 	public static final LanguageFeature BIT_OR = new LanguageFeature(FeatureType.ADQL_BITWISE, "BIT_OR");  // TODO BIT_OR
 	public static final LanguageFeature BIT_XOR = new LanguageFeature(FeatureType.ADQL_BITWISE, "BIT_XOR");  // TODO BIT_XOR
 	public static final LanguageFeature BIT_NOT = new LanguageFeature(FeatureType.ADQL_BITWISE, "BIT_NOT");  // TODO BIT_NOT
-	
+
 	public static final LanguageFeature OFFSET = new LanguageFeature(FeatureType.ADQL_OFFSET, "OFFSET");  // TODO OFFSET*/
 
 	/** All standard features available.
diff --git a/test/adql/parser/feature/TestFeatureSet.java b/test/adql/parser/feature/TestFeatureSet.java
index 1c273f017109f3d42f004446708fe1437cb8bbcc..e58fb7575ae2dab97dc5a63f9adbd8f51b993d3d 100644
--- a/test/adql/parser/feature/TestFeatureSet.java
+++ b/test/adql/parser/feature/TestFeatureSet.java
@@ -215,11 +215,17 @@ public class TestFeatureSet {
 	public void testUnsupportAll() {
 		FeatureSet set = new FeatureSet(true);
 
+		/* here is a custom Language Feature (i.e. not part of the
+		 * availableFeatures list): */
+		set.support(new LanguageFeature(LanguageFeature.TYPE_UDF, "foo(VARCHAR) -> BOOLEAN", true));
+
+		// unsupport all currently supported features:
 		set.unsupportAll();
-		for(LanguageFeature feat : FeatureSet.availableFeatures) {
-			assertNotNull(feat);
-			assertFalse(set.supportedFeatures.containsKey(feat.type));
-		}
+
+		// ensure the list of supported features is really empty:
+		assertEquals(0, set.supportedFeatures.size());
+
+		// ...and that no non-declared UDF is allowed:
 		assertFalse(set.isAnyUdfAllowed());
 	}