diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml
index 0258e4d77f6639225487cde91b204cc181a5d0bc..ef524a0d17969518161a318f8c8d8e60f866c614 100644
--- a/src/plugins/value/value_parameters.ml
+++ b/src/plugins/value/value_parameters.ml
@@ -209,11 +209,16 @@ let () =
 
 let () = Parameter_customize.set_group domains
 module DomainsFunction =
-  String_multiple_map
+  Make_multiple_map
+    (struct
+      include Datatype.String
+      let of_string str = check_domain str; str
+      let of_singleton_string = no_element_of_string
+      let to_string str = str
+    end)
     (struct
       include Domain_mode.Function_Mode
       let of_string ~key ~prev str =
-        check_domain key;
         try of_string ~key ~prev str
         with Invalid_argument msg -> raise (Cannot_build msg)
     end)
@@ -225,6 +230,7 @@ module DomainsFunction =
                   <d:f-> disables the domain [d] from function [f]."
       let arg_name = "d:f"
       let default = Datatype.String.Map.empty
+      let dependencies = []
     end)
 let () = add_precision_dep DomainsFunction.parameter