diff --git a/include/asterisk/taskprocessor.h b/include/asterisk/taskprocessor.h
index a26cf4341533327c7a0dad7aa3e8598a40d94a82..708b3d75031ac260a16fb18e7206163d3eda66e9 100644
--- a/include/asterisk/taskprocessor.h
+++ b/include/asterisk/taskprocessor.h
@@ -111,7 +111,22 @@ struct ast_taskprocessor_listener_callbacks {
 	void (*shutdown)(struct ast_taskprocessor_listener *listener);
 };
 
+/*!
+ * \brief Get a reference to the listener's taskprocessor
+ *
+ * This will return the taskprocessor with its reference count increased. Release
+ * the reference to this object by using ast_taskprocessor_unreference()
+ *
+ * \param listener The listener that has the taskprocessor
+ * \return The taskprocessor
+ */
 struct ast_taskprocessor *ast_taskprocessor_listener_get_tps(const struct ast_taskprocessor_listener *listener);
+
+/*!
+ * \brief Get the user data from the listener
+ * \param listener The taskprocessor listener
+ * \return The listener's user data
+ */
 void *ast_taskprocessor_listener_get_user_data(const struct ast_taskprocessor_listener *listener);
 
 /*!
diff --git a/include/asterisk/threadpool.h b/include/asterisk/threadpool.h
index 51abc63c45493513cea8d04774257af3cf7677d9..04daa9faa5aca186246172a1c9a75c2c2ec18b92 100644
--- a/include/asterisk/threadpool.h
+++ b/include/asterisk/threadpool.h
@@ -114,6 +114,11 @@ struct ast_threadpool_options {
 struct ast_threadpool_listener *ast_threadpool_listener_alloc(
 		const struct ast_threadpool_listener_callbacks *callbacks, void *user_data);
 
+/*!
+ * \brief Get the threadpool listener's user data
+ * \param listener The threadpool listener
+ * \return The user data
+ */
 void *ast_threadpool_listener_get_user_data(const struct ast_threadpool_listener *listener);
 
 /*!
diff --git a/main/taskprocessor.c b/main/taskprocessor.c
index 0b6a2a817ec10d7d2e095bbb7665c1d35674c2c5..b603e5738418a02b3b4eb1d8440e266456454a0b 100644
--- a/main/taskprocessor.c
+++ b/main/taskprocessor.c
@@ -495,6 +495,7 @@ struct ast_taskprocessor_listener *ast_taskprocessor_listener_alloc(const struct
 
 struct ast_taskprocessor *ast_taskprocessor_listener_get_tps(const struct ast_taskprocessor_listener *listener)
 {
+	ao2_ref(listener->tps, +1);
 	return listener->tps;
 }