diff --git a/main/io.c b/main/io.c
index 38db12fba625ed8d25bcab9503ffeb79aa557581..a974b567398b7d4e273790c1877079ffe0e31613 100644
--- a/main/io.c
+++ b/main/io.c
@@ -44,13 +44,13 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #define DEBUG(a) 
 #endif
 
-/* 
+/*! \brief
  * Kept for each file descriptor
  */
 struct io_rec {
-	ast_io_cb callback;		/* What is to be called */
-	void *data; 				/* Data to be passed */
-	int *id; 					/* ID number */
+	ast_io_cb callback;		/*!< What is to be called */
+	void *data; 			/*!< Data to be passed */
+	int *id; 			/*!< ID number */
 };
 
 /* These two arrays are keyed with
@@ -62,21 +62,15 @@ struct io_rec {
 
 #define GROW_SHRINK_SIZE 512
 
-/* Global variables are now in a struct in order to be
+/*! \brief Global IO variables are now in a struct in order to be
    made threadsafe */
 struct io_context {
-	/* Poll structure */
-	struct pollfd *fds;
-	/* Associated I/O records */
-	struct io_rec *ior;
-	/* First available fd */
-	unsigned int fdcnt;
-	/* Maximum available fd */
-	unsigned int maxfdcnt;
-	/* Currently used io callback */
-	int current_ioc;
-	/* Whether something has been deleted */
-	int needshrink;
+	struct pollfd *fds;           /*!< Poll structure */
+	struct io_rec *ior;           /*!< Associated I/O records */
+	unsigned int fdcnt;           /*!< First available fd */
+	unsigned int maxfdcnt;        /*!< Maximum available fd */
+	int current_ioc;              /*!< Currently used io callback */
+	int needshrink;               /*!< Whether something has been deleted */
 };
 
 struct io_context *io_context_create(void)
@@ -112,12 +106,12 @@ void io_context_destroy(struct io_context *ioc)
 	free(ioc);
 }
 
+/*! \brief
+ * Grow the size of our arrays.  
+ * \return 0 on success or -1 on failure
+ */
 static int io_grow(struct io_context *ioc)
 {
-	/* 
-	 * Grow the size of our arrays.  Return 0 on success or
-	 * -1 on failure
-	 */
 	void *tmp;
 	DEBUG(ast_log(LOG_DEBUG, "io_grow()\n"));
 	ioc->maxfdcnt += GROW_SHRINK_SIZE;
@@ -146,13 +140,14 @@ static int io_grow(struct io_context *ioc)
 	return 0;
 }
 
+/*! \brief
+ * Add a new I/O entry for this file descriptor
+ * with the given event mask, to call callback with
+ * data as an argument.  
+ * \return Returns NULL on failure.
+ */
 int *ast_io_add(struct io_context *ioc, int fd, ast_io_cb callback, short events, void *data)
 {
-	/*
-	 * Add a new I/O entry for this file descriptor
-	 * with the given event mask, to call callback with
-	 * data as an argument.  Returns NULL on failure.
-	 */
 	int *ret;
 	DEBUG(ast_log(LOG_DEBUG, "ast_io_add()\n"));
 	if (ioc->fdcnt >= ioc->maxfdcnt) {
@@ -252,13 +247,13 @@ int ast_io_remove(struct io_context *ioc, int *_id)
 	return -1;
 }
 
+/*! \brief
+ * Make the poll call, and call
+ * the callbacks for anything that needs
+ * to be handled
+ */
 int ast_io_wait(struct io_context *ioc, int howlong)
 {
-	/*
-	 * Make the poll call, and call
-	 * the callbacks for anything that needs
-	 * to be handled
-	 */
 	int res;
 	int x;
 	int origcnt;