diff --git a/include/osmocom/core/rate_ctr.h b/include/osmocom/core/rate_ctr.h
index ebaa7a7..b75967a 100644
--- a/include/osmocom/core/rate_ctr.h
+++ b/include/osmocom/core/rate_ctr.h
@@ -10,60 +10,60 @@
 
 #include <osmocom/core/linuxlist.h>
 
-/*! \brief Number of rate counter intervals */
+/*! Number of rate counter intervals */
 #define RATE_CTR_INTV_NUM	4
 
-/*! \brief Rate counter interval */
+/*! Rate counter interval */
 enum rate_ctr_intv {
-	RATE_CTR_INTV_SEC,	/*!< \brief last second */
-	RATE_CTR_INTV_MIN,	/*!< \brief last minute */
-	RATE_CTR_INTV_HOUR,	/*!< \brief last hour */
-	RATE_CTR_INTV_DAY,	/*!< \brief last day */
+	RATE_CTR_INTV_SEC,	/*!< last second */
+	RATE_CTR_INTV_MIN,	/*!< last minute */
+	RATE_CTR_INTV_HOUR,	/*!< last hour */
+	RATE_CTR_INTV_DAY,	/*!< last day */
 };
 
-/*! \brief data we keep for each of the intervals */
+/*! data we keep for each of the intervals */
 struct rate_ctr_per_intv {
-	uint64_t last;		/*!< \brief counter value in last interval */
-	uint64_t rate;		/*!< \brief counter rate */
+	uint64_t last;		/*!< counter value in last interval */
+	uint64_t rate;		/*!< counter rate */
 };
 
-/*! \brief data we keep for each actual value */
+/*! data we keep for each actual value */
 struct rate_ctr {
-	uint64_t current;	/*!< \brief current value */
-	uint64_t previous;	/*!< \brief previous value, used for delta */
-	/*! \brief per-interval data */
+	uint64_t current;	/*!< current value */
+	uint64_t previous;	/*!< previous value, used for delta */
+	/*! per-interval data */
 	struct rate_ctr_per_intv intv[RATE_CTR_INTV_NUM];
 };
 
-/*! \brief rate counter description */
+/*! rate counter description */
 struct rate_ctr_desc {
-	const char *name;	/*!< \brief name of the counter */
-	const char *description;/*!< \brief description of the counter */
+	const char *name;	/*!< name of the counter */
+	const char *description;/*!< description of the counter */
 };
 
-/*! \brief description of a rate counter group */
+/*! description of a rate counter group */
 struct rate_ctr_group_desc {
-	/*! \brief The prefix to the name of all counters in this group */
+	/*! The prefix to the name of all counters in this group */
 	const char *group_name_prefix;
-	/*! \brief The human-readable description of the group */
+	/*! The human-readable description of the group */
 	const char *group_description;
-	/*! \brief The class to which this group belongs */
+	/*! The class to which this group belongs */
 	int class_id;
-	/*! \brief The number of counters in this group */
+	/*! The number of counters in this group */
 	const unsigned int num_ctr;
-	/*! \brief Pointer to array of counter names */
+	/*! Pointer to array of counter names */
 	const struct rate_ctr_desc *ctr_desc;
 };
 
-/*! \brief One instance of a counter group class */
+/*! One instance of a counter group class */
 struct rate_ctr_group {
-	/*! \brief Linked list of all counter groups in the system */
+	/*! Linked list of all counter groups in the system */
 	struct llist_head list;
-	/*! \brief Pointer to the counter group class */
+	/*! Pointer to the counter group class */
 	const struct rate_ctr_group_desc *desc;
-	/*! \brief The index of this ctr_group within its class */
+	/*! The index of this ctr_group within its class */
 	unsigned int idx;
-	/*! \brief Actual counter structures below */
+	/*! Actual counter structures below */
 	struct rate_ctr ctr[0];
 };
 
@@ -78,19 +78,19 @@
 
 void rate_ctr_group_free(struct rate_ctr_group *grp);
 
-/*! \brief Increment the counter by \a inc
+/*! Increment the counter by \a inc
  *  \param ctr \ref rate_ctr to increment
  *  \param inc quantity to increment \a ctr by */
 void rate_ctr_add(struct rate_ctr *ctr, int inc);
 
-/*! \brief Increment the counter by 1
+/*! Increment the counter by 1
  *  \param ctr \ref rate_ctr to increment */
 static inline void rate_ctr_inc(struct rate_ctr *ctr)
 {
 	rate_ctr_add(ctr, 1);
 }
 
-/*! \brief Return the counter difference since the last call to this function */
+/*! Return the counter difference since the last call to this function */
 int64_t rate_ctr_difference(struct rate_ctr *ctr);
 
 int rate_ctr_init(void *tall_ctx);
@@ -104,7 +104,7 @@
 typedef int (*rate_ctr_group_handler_t)(struct rate_ctr_group *, void *);
 
 
-/*! \brief Iterate over all counters
+/*! Iterate over all counters
  *  \param[in] handle_item Call-back function, aborts if rc < 0
  *  \param[in] data Private data handed through to \a handle_counter
  */
