diff --git a/Makefile b/Makefile
index 58d4cbf2dc1359fc587d190e833bcf6c1298cad8..f586e7ab3703b68bad5e0cdb36660e1d4c3e883b 100644
--- a/Makefile
+++ b/Makefile
@@ -940,7 +940,7 @@ menuselect/nmenuselect: menuselect/makeopts
 menuselect/makeopts: makeopts
 	+$(MAKE_MENUSELECT) makeopts
 
-menuselect-tree: $(foreach dir,$(filter-out main,$(MOD_SUBDIRS)),$(wildcard $(dir)/*.c) $(wildcard $(dir)/*.cc)) build_tools/cflags.xml build_tools/cflags-devmode.xml sounds/sounds.xml build_tools/embed_modules.xml configure
+menuselect-tree: $(foreach dir,$(filter-out main,$(MOD_SUBDIRS)),$(wildcard $(dir)/*.c) $(wildcard $(dir)/*.cc)) build_tools/cflags.xml build_tools/cflags-devmode.xml sounds/sounds.xml build_tools/embed_modules.xml utils/utils.xml configure
 	@echo "Generating input for menuselect ..."
 	@echo "<?xml version=\"1.0\"?>" > $@
 	@echo >> $@
@@ -951,6 +951,7 @@ menuselect-tree: $(foreach dir,$(filter-out main,$(MOD_SUBDIRS)),$(wildcard $(di
 	@if [ "${AST_DEVMODE}" = "yes" ]; then \
 		cat build_tools/cflags-devmode.xml >> $@; \
 	fi
+	@cat utils/utils.xml >> $@
 	@cat build_tools/embed_modules.xml >> $@
 	@cat sounds/sounds.xml >> $@
 	@echo "</menu>" >> $@
diff --git a/doc/janitor-projects.txt b/doc/janitor-projects.txt
index debd462f69262166b6df0ae158d79e2f1bf489ae..30fe3b1851820ce5dd14fd8ef0bdd33ff435260c 100644
--- a/doc/janitor-projects.txt
+++ b/doc/janitor-projects.txt
@@ -23,6 +23,4 @@
 
  -- Convert all usage of the signal(2) system API to the more portable sigaction(2) system API.
 
- -- Make the applications in utils/ selectable in menuselect and turn off muted by default. Probably others too.
-
  -- Find options and arguments in Asterisk which specify a time period in seconds or milliseconds and convert them to use the new ast_app_parse_timelen() function.
diff --git a/utils/Makefile b/utils/Makefile
index ed7eebe566a81b98938f7324eba3b0aea04a18ec..8c8ae5d0d90488d5d9baed766c77b297117c144c 100644
--- a/utils/Makefile
+++ b/utils/Makefile
@@ -27,7 +27,7 @@ ASTTOPDIR?=..
 #     changes are made to ast_expr2.y or ast_expr2.fl (or the corresponding .c files),
 #     as a regression test. Others (mere mortals?) need not bother, but they are
 #     more than welcome to play! The regression test itself is in expr2.testinput.
-ALL_UTILS:=astman smsq stereorize streamplayer muted hashtest2 hashtest astcanary refcounter aelparse conf2ael
+ALL_UTILS:=$(MENUSELECT_UTILS)
 UTILS:=$(ALL_UTILS)
 
 LIBS += $(BKTR_LIB) # astobj2 with devmode uses backtrace
diff --git a/utils/utils.xml b/utils/utils.xml
new file mode 100644
index 0000000000000000000000000000000000000000..135cbd7c3c01862d24708d81eb6e9d33daf13674
--- /dev/null
+++ b/utils/utils.xml
@@ -0,0 +1,41 @@
+<category name="MENUSELECT_UTILS" displayname="Utilities" positive_output="yes">
+  <member name="aelparse">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="astcanary">
+	<defaultenabled>yes</defaultenabled>
+  </member>
+  <member name="astman">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="check_expr">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="check_expr2">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="conf2ael">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="hashtest">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="hashtest2">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="muted">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="refcounter">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="smsq">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="stereorize">
+	<defaultenabled>no</defaultenabled>
+  </member>
+  <member name="streamplayer">
+	<defaultenabled>no</defaultenabled>
+  </member>
+</category>