diff --git a/src/codec/ecu.c b/src/codec/ecu.c
index 59194ae..def72e6 100644
--- a/src/codec/ecu.c
+++ b/src/codec/ecu.c
@@ -44,7 +44,7 @@
 
 /*! initialize an ECU instance for given codec.
  *  \param[in] ctx talloc context from which to allocate
- *  \parma[in] codec codec for which to initialize/create ECU */
+ *  \param[in] codec codec for which to initialize/create ECU */
 struct osmo_ecu_state *osmo_ecu_init(void *ctx, enum osmo_ecu_codec codec)
 {
 	if (codec >= ARRAY_SIZE(g_ecu_ops))
diff --git a/src/core/exec.c b/src/core/exec.c
index fd63d85..6412270 100644
--- a/src/core/exec.c
+++ b/src/core/exec.c
@@ -74,7 +74,7 @@
  *
  *  Constraints: Keys up to a maximum length of 255 characters are supported.
  *
- *  \oaram[out] out caller-allocated array of pointers for the generated output
+ *  \param[out] out caller-allocated array of pointers for the generated output
  *  \param[in] out_len size of out (number of pointers)
  *  \param[in] in input environment (NULL-terminated list of pointers like **environ)
  *  \param[in] whitelist whitelist of permitted keys in environment (like **environ)
@@ -131,7 +131,7 @@
  *  Constraints: If the same key exists in 'out' and 'in', duplicate keys are
  *  generated.  It is a simple append, without any duplicate checks.
  *
- *  \oaram[out] out caller-allocated array of pointers for the generated output
+ *  \param[out] out caller-allocated array of pointers for the generated output
  *  \param[in] out_len size of out (number of pointers)
  *  \param[in] in input environment (NULL-terminated list of pointers like **environ)
  *  \returns number of entries filled in 'out'; negative on error */
diff --git a/src/core/mnl.c b/src/core/mnl.c
index c3f5fe6..d148e1b 100644
--- a/src/core/mnl.c
+++ b/src/core/mnl.c
@@ -54,7 +54,7 @@
 }
 
 /*! create an osmocom-wrapped limnl netlink socket.
- *  \parma[in] ctx talloc context from which to allocate
+ *  \param[in] ctx talloc context from which to allocate
  *  \param[in] bus netlink socket bus ID (see NETLINK_* constants)
  *  \param[in] groups groups of messages to bind/subscribe to
  *  \param[in] mnl_cb callback function called for each incoming message
diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c
index 9438f7e..94b8975 100644
--- a/src/ctrl/control_if.c
+++ b/src/ctrl/control_if.c
@@ -96,7 +96,7 @@
 
 /*! Send a CTRL command to all connections.
  *  \param[in] ctrl global control handle
- *  \param[in] cmd command to send to all connections in \ctrl
+ *  \param[in] cmd command to send to all connections in ctrl
  *  \returns number of times the command has been sent */
 int ctrl_cmd_send_to_all(struct ctrl_handle *ctrl, struct ctrl_cmd *cmd)
 {
@@ -1048,7 +1048,7 @@
  *  This function is used by e.g. library code to install lookup helpers
  *  for additional nodes in the control interface.
  *  \param[in] lookup The lookup helper function
- *  \retuns - on success; negative on error.
+ *  \returns - on success; negative on error.
  */
 int ctrl_lookup_register(ctrl_cmd_lookup lookup)
 {
diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c
index e250eda..304fe7c 100644
--- a/src/gb/gprs_ns.c
+++ b/src/gb/gprs_ns.c
@@ -532,7 +532,7 @@
 
 /*! Transmit a NS-RESET on a given NSVC
  *  \param[in] nsvc NS-VC used for transmission
- *  \paam[in] cause Numeric NS cause value
+ *  \param[in] cause Numeric NS cause value
  */
 int gprs_ns_tx_reset(struct gprs_nsvc *nsvc, uint8_t cause)
 {
diff --git a/src/gb/gprs_ns2_message.c b/src/gb/gprs_ns2_message.c
index cc95334..1b986fe 100644
--- a/src/gb/gprs_ns2_message.c
+++ b/src/gb/gprs_ns2_message.c
@@ -282,7 +282,7 @@
 
 /*! Transmit a NS-RESET on a given NS-VC.
  *  \param[in] nsvc NS-VC used for transmission
- *  \paam[in] cause Numeric NS cause value
+ *  \param[in] cause Numeric NS cause value
  *  \returns 0 in case of success */
 int ns2_tx_reset(struct gprs_ns2_vc *nsvc, uint8_t cause)
 {
diff --git a/src/gsm/gsm0411_utils.c b/src/gsm/gsm0411_utils.c
index c26cd82..470b017 100644
--- a/src/gsm/gsm0411_utils.c
+++ b/src/gsm/gsm0411_utils.c
@@ -293,7 +293,7 @@
  *  \param[in] type GSM340_TYPE_*
  *  \param[in] plan Numbering Plan
  *  \param[in] number string containing number
- *  \reurns number of bytes of \a oa that have been used */
+ *  \returns number of bytes of \a oa that have been used */
 int gsm340_gen_oa(uint8_t *oa, unsigned int oa_len, uint8_t type,
 	uint8_t plan, const char *number)
 {
@@ -348,7 +348,7 @@
  *  \param[in] proto Protocol
  *  \param[in] trans Transaction
  *  \param[in] msg_type Message Type
- *  \retrns 0 */
+ *  \returns 0 */
 int gsm411_push_cp_header(struct msgb *msg, uint8_t proto, uint8_t trans,
 			     uint8_t msg_type)
 {
diff --git a/src/gsm/gsm48_ie.c b/src/gsm/gsm48_ie.c
index 11b7168..e431e4f 100644
--- a/src/gsm/gsm48_ie.c
+++ b/src/gsm/gsm48_ie.c
@@ -369,7 +369,7 @@
 /*! Decode TS 04.08 Call Control Capabilities IE (10.5.4.5a)
  *  \param[out] Caller-provided memory for decoded CC capabilities
  *  \param[in] lv Length-Value of IE
- *  \retursns 0 on success; negative on error */
+ *  \returns 0 on success; negative on error */
 int gsm48_decode_cccap(struct gsm_mncc_cccap *ccap, const uint8_t *lv)
 {
 	uint8_t in_len = lv[0];
diff --git a/src/gsm/lapdm.c b/src/gsm/lapdm.c
index e7d46e6..b7f5769 100644
--- a/src/gsm/lapdm.c
+++ b/src/gsm/lapdm.c
@@ -253,7 +253,7 @@
  *  \param[in] t200_ms_dcch per-SAPI array of T200 in milli-seconds for DCCH
  *  \param[in] t200_ms_acch per-SAPI array of T200 in milli-seconds for SACCH
  *  \param[in] chan_t GSM channel type (to correctly set N200)
- *  \parma[in] name_pfx human-readable name (copied by function + extended with ACCH/DCCH)
+ *  \param[in] name_pfx human-readable name (copied by function + extended with ACCH/DCCH)
  */
 int lapdm_channel_init3(struct lapdm_channel *lc, enum lapdm_mode mode,
 			const int *t200_ms_dcch, const int *t200_ms_acch, enum gsm_chan_t chan_t,
diff --git a/src/gsm/tlv_parser.c b/src/gsm/tlv_parser.c
index c5aac97..de76688 100644
--- a/src/gsm/tlv_parser.c
+++ b/src/gsm/tlv_parser.c
@@ -126,7 +126,7 @@
  *  \param[inout] msg Caller-allocated message buffer with sufficient tailroom
  *  \param[in] type TLV type/format to use during encode
  *  \param[in] tag Tag of TLV to be encoded
- *  \parma[in] len Length of TLV to be encoded
+ *  \param[in] len Length of TLV to be encoded
  *  \param[in] val Value part of TLV to be encoded
  *  \returns 0 on success; negative in case of error */
 int tlv_encode_one(struct msgb *msg, enum tlv_type type, uint8_t tag,
diff --git a/src/isdn/i460_mux.c b/src/isdn/i460_mux.c
index 9e9489a..0e84816 100644
--- a/src/isdn/i460_mux.c
+++ b/src/isdn/i460_mux.c
@@ -197,7 +197,7 @@
 
 /*! provide one byte with the subchan-specific bits of given sub-channel.
  *  \param[in] schan sub-channel that is to provide bits
- *  \parma[out] mask bitmask of those bits filled in
+ *  \param[out] mask bitmask of those bits filled in
  *  \returns bits of given sub-channel */
 static uint8_t mux_subchan_provide_bits(struct osmo_i460_subchan *schan, uint8_t *mask)
 {
