diff --git a/lenses/tests/test_xinetd.aug b/lenses/tests/test_xinetd.aug
index d728d73..aaaeec0 100644
--- a/lenses/tests/test_xinetd.aug
+++ b/lenses/tests/test_xinetd.aug
@@ -21,6 +21,7 @@ service cvspserver
         server_args             = -f --allow-root=/var/cvs pserver
 #       bind                    = 127.0.0.1
         log_on_failure         += HOST
+        FLAGS                   = IPv6 IPv4
 }
 "
 
@@ -60,7 +61,10 @@ test Xinetd.lns get cvs =
           { "value" = "--allow-root=/var/cvs" }
           { "value" = "pserver" } }
       { "#comment" = "bind                    = 127.0.0.1" }
-      { "log_on_failure" { "add" } { "value" = "HOST" } } }
+      { "log_on_failure" { "add" } { "value" = "HOST" } }
+      { "FLAGS"
+          { "value" = "IPv6" }
+          { "value" = "IPv4" } } }
 
 (* Switch the '+=' to a simple '=' *)
 test Xinetd.lns put lst_add after rm "/service/log_on_failure/add" =
diff --git a/lenses/xinetd.aug b/lenses/xinetd.aug
index c9849ce..bb018d2 100644
--- a/lenses/xinetd.aug
+++ b/lenses/xinetd.aug
@@ -44,26 +44,15 @@ module Xinetd =
    *      causes the type checker to work _very_ hard.
    *)
   let service_attr =
-    attr_one ("socket_type" | "protocol" | "wait" | "user" | "group"
-             |"server" | "instances"  | "rpc_version" | "rpc_number"
-             | "id" | "port" | "nice" | "banner" | "bind" | "interface"
-             | "per_source" | "groups" | "banner_success" | "banner_fail"
-             | "disable" | "max_load" | "rlimit_as" | "rlimit_cpu"
-             | "rlimit_data" | "rlimit_rss" | "rlimit_stack" | "v6only"
-             | "deny_time" | "umask" | "mdns" | "libwrap")
+   attr_one (/socket_type|protocol|wait|user|group|server|instances|rpc_version|rpc_number|id|port|nice|banner|bind|interface|per_source|groups|banner_success|banner_fail|disable|max_load|rlimit_as|rlimit_cpu|rlimit_data|rlimit_rss|rlimit_stack|v6only|deny_time|umask|mdns|libwrap/i)
    (* redirect and cps aren't really lists, they take exactly two values *)
-   |attr_lst_eq ("server_args" | "log_type" |  "access_times" | "type"
-                | "flags" | "redirect" | "cps")
-   |attr_lst_op ( "log_on_success" | "log_on_failure"| "only_from"
-                | "no_access" | "env" | "passenv")
+   |attr_lst_eq (/server_args|log_type|access_times|type|flags|redirect|cps/i)
+   |attr_lst_op (/log_on_success|log_on_failure|only_from|no_access|env|passenv/i)
 
   let default_attr =
-    attr_one ( "instances" | "banner" | "bind" | "interface" | "per_source"
-             | "groups" | "banner_success" | "banner_fail" | "max_load"
-             | "v6only" | "umask" | "mdns")
-   |attr_lst_eq "cps"       (* really only two values, not a whole list *)
-   |attr_lst_op ( "log_type" | "log_on_success" | "log_on_failure" | "disabled"
-                | "no_access" | "only_from" | "passenv" | "enabled" )
+    attr_one (/instances|banner|bind|interface|per_source|groups|banner_success|banner_fail|max_load|v6only|umask|mdns/i)
+   |attr_lst_eq /cps/i       (* really only two values, not a whole list *)
+   |attr_lst_op (/log_type|log_on_success|log_on_failure|disabled|no_access|only_from|passenv|enabled/i)
 
   (* View: body
    *   Note:
