diff --git a/modules/m_names.c b/modules/m_names.c
index c4c755fc3..766fac03a 100644
--- a/modules/m_names.c
+++ b/modules/m_names.c
@@ -45,7 +45,10 @@ struct Message names_msgtab = {
 };
 
 mapi_clist_av1 names_clist[] = { &names_msgtab, NULL };
-DECLARE_MODULE_AV2(names, NULL, NULL, names_clist, NULL, NULL, NULL, NULL, NULL);
+
+static const char names_desc[] = "Provides the NAMES command to view users on a channel";
+
+DECLARE_MODULE_AV2(names, NULL, NULL, names_clist, NULL, NULL, NULL, NULL, names_desc);
 
 static void names_global(struct Client *source_p);
 
diff --git a/modules/m_oper.c b/modules/m_oper.c
index 62e94ffcf..9ec15a5e0 100644
--- a/modules/m_oper.c
+++ b/modules/m_oper.c
@@ -47,7 +47,10 @@ struct Message oper_msgtab = {
 };
 
 mapi_clist_av1 oper_clist[] = { &oper_msgtab, NULL };
-DECLARE_MODULE_AV2(oper, NULL, NULL, oper_clist, NULL, NULL, NULL, NULL, NULL);
+
+static const char oper_desc[] = "Provides the OPER command to become an IRC operator";
+
+DECLARE_MODULE_AV2(oper, NULL, NULL, oper_clist, NULL, NULL, NULL, NULL, oper_desc);
 
 static int match_oper_password(const char *password, struct oper_conf *oper_p);
 
diff --git a/modules/m_operspy.c b/modules/m_operspy.c
index b5e3250ba..3158ead87 100644
--- a/modules/m_operspy.c
+++ b/modules/m_operspy.c
@@ -51,7 +51,11 @@ struct Message operspy_msgtab = {
 };
 
 mapi_clist_av1 operspy_clist[] = { &operspy_msgtab, NULL };
-DECLARE_MODULE_AV2(operspy, NULL, NULL, operspy_clist, NULL, NULL, NULL, NULL, NULL);
+
+static const char operspy_desc[] =
+	"Provides the operspy facility for viewing normally private data";
+
+DECLARE_MODULE_AV2(operspy, NULL, NULL, operspy_clist, NULL, NULL, NULL, NULL, operspy_desc);
 
 /* ms_operspy()
  *