diff --git a/doc/manuals/chapters/counters_generated.adoc b/doc/manuals/chapters/counters_generated.adoc
index 1b40d8b..e2587e8 100644
--- a/doc/manuals/chapters/counters_generated.adoc
+++ b/doc/manuals/chapters/counters_generated.adoc
@@ -27,7 +27,7 @@
 | sms:rp_err_other | <<msc_sms:rp_err_other>> | Other error of MS responses on a sms delive attempt.
 | sms:deliver_unknown_error | <<msc_sms:deliver_unknown_error>> | Unknown error occurred during sms delivery.
 | call:mo_setup | <<msc_call:mo_setup>> | Received setup requests from a MS to init a MO call.
-| call:mo_connect_ack | <<msc_call:mo_connect_ack>> | Received a connect ack from MS of a MO call. Call is now succesful connected up.
+| call:mo_connect_ack | <<msc_call:mo_connect_ack>> | Received a connect ack from MS of a MO call. Call is now successful connected up.
 | call:mt_setup | <<msc_call:mt_setup>> | Sent setup requests to the MS (MT).
 | call:mt_connect | <<msc_call:mt_connect>> | Sent a connect to the MS (MT).
 | call:active | <<msc_call:active>> | Count total amount of calls that ever reached active state.
diff --git a/doc/manuals/chapters/running.adoc b/doc/manuals/chapters/running.adoc
index 9d56f1f..71f336b 100644
--- a/doc/manuals/chapters/running.adoc
+++ b/doc/manuals/chapters/running.adoc
@@ -44,7 +44,7 @@
 	Same as option -M (deprecated).
 *-C, --no-dbcounter*::
 	Deprecated. DB statistics and counter has been removed.
-	This option is only valid for compatiblity and does nothing.
+	This option is only valid for compatibility and does nothing.
 
 
 === Multiple instances
diff --git a/doc/sequence_charts/msc_log_to_ladder.py b/doc/sequence_charts/msc_log_to_ladder.py
index 1ceaeb6..30b6594 100755
--- a/doc/sequence_charts/msc_log_to_ladder.py
+++ b/doc/sequence_charts/msc_log_to_ladder.py
@@ -713,7 +713,7 @@
 			help='Pick output format: mscgen format or libosmocore/contrib/ladder_to_msc.py format')
 	parser.add_argument('-m', '--mask-values', dest='mask_values', action='store_true',
 			help='Do not output specific values like IP address, port, endpoint CI, instead just indicate that a value is'
-			     ' present. This makes the output reproducable across various logs.')
+			     ' present. This makes the output reproducible across various logs.')
 	parser.add_argument('-s', '--start-with', dest='start_with_re', default=None,
 			help='Skip until the first message with this label (regex), e.g. -s "CC SETUP"')
 
diff --git a/include/osmocom/msc/gsm_data.h b/include/osmocom/msc/gsm_data.h
index 11b6e82..bcee213 100644
--- a/include/osmocom/msc/gsm_data.h
+++ b/include/osmocom/msc/gsm_data.h
@@ -83,7 +83,7 @@
 	[MSC_CTR_SMS_DELIVER_UNKNOWN_ERROR] =	{"sms:deliver_unknown_error", "Unknown error occurred during sms delivery."},
 	/* FIXME: count also sms delivered */
 	[MSC_CTR_CALL_MO_SETUP] = 		{"call:mo_setup", "Received setup requests from a MS to init a MO call."},
-	[MSC_CTR_CALL_MO_CONNECT_ACK] = 		{"call:mo_connect_ack", "Received a connect ack from MS of a MO call. Call is now succesful connected up."},
+	[MSC_CTR_CALL_MO_CONNECT_ACK] = 		{"call:mo_connect_ack", "Received a connect ack from MS of a MO call. Call is now successful connected up."},
 	[MSC_CTR_CALL_MT_SETUP] = 		{"call:mt_setup", "Sent setup requests to the MS (MT)."},
 	[MSC_CTR_CALL_MT_CONNECT] = 		{"call:mt_connect", "Sent a connect to the MS (MT)."},
 	[MSC_CTR_CALL_ACTIVE] =			{"call:active", "Count total amount of calls that ever reached active state."},
diff --git a/include/osmocom/msc/mncc.h b/include/osmocom/msc/mncc.h
index 28ee9b3..4414a8d 100644
--- a/include/osmocom/msc/mncc.h
+++ b/include/osmocom/msc/mncc.h
@@ -53,7 +53,7 @@
 #define MNCC_SETUP_CNF		0x0104
 #define MNCC_SETUP_COMPL_REQ	0x0105
 #define MNCC_SETUP_COMPL_IND	0x0106
-/* MNCC_REJ_* is perfomed via MNCC_REL_* */
+/* MNCC_REJ_* is performed via MNCC_REL_* */
 #define MNCC_CALL_CONF_IND	0x0107
 #define MNCC_CALL_PROC_REQ	0x0108
 #define MNCC_PROGRESS_REQ	0x0109
@@ -132,7 +132,7 @@
 	/* which fields are present */
 	uint32_t	fields;
 
-	/* data derived informations (MNCC_F_ based) */
+	/* data derived information (MNCC_F_ based) */
 	struct gsm_mncc_bearer_cap	bearer_cap;
 	struct gsm_mncc_number		called;
 	struct gsm_mncc_number		calling;
diff --git a/include/osmocom/msc/msc_roles.h b/include/osmocom/msc/msc_roles.h
index b22bc7b..4957175 100644
--- a/include/osmocom/msc/msc_roles.h
+++ b/include/osmocom/msc/msc_roles.h
@@ -236,7 +236,7 @@
 	MSC_A_EV_FROM_T_SEND_END_SIGNAL_REQUEST,
 
 	/* gsm_04_08.c has successfully received a valid Complete Layer 3 message, i.e. Location Updating, CM Service
-	 * Request, Paging Reponse or IMSI Detach. */
+	 * Request, Paging Response or IMSI Detach. */
 	MSC_A_EV_COMPLETE_LAYER_3_OK,
 
 	/* Received a Classmark Update -- during GERAN ciphering, msc_a may have to wait for Classmark information to
diff --git a/include/osmocom/msc/sgs_server.h b/include/osmocom/msc/sgs_server.h
index a89022d..400bd9e 100644
--- a/include/osmocom/msc/sgs_server.h
+++ b/include/osmocom/msc/sgs_server.h
@@ -44,7 +44,7 @@
 		char vlr_name[SGS_VLR_NAME_MAXLEN];
 		/* timers on VLR side */
 		unsigned int timer[_NUM_SGS_STATE_TIMERS];
-		/* countrs on VLR side */
+		/* counters on VLR side */
 		unsigned int counter[_NUM_SGS_STATE_COUNTERS];
 	} cfg;
 };
diff --git a/include/osmocom/msc/vlr.h b/include/osmocom/msc/vlr.h
index 52912eb..ee5a234 100644
--- a/include/osmocom/msc/vlr.h
+++ b/include/osmocom/msc/vlr.h
@@ -40,7 +40,7 @@
 
 /* VLR subscriber authentication state */
 enum vlr_subscr_auth_state {
-	/* subscriber needs to be autenticated */
+	/* subscriber needs to be authenticated */
 	VLR_SUB_AS_NEEDS_AUTH,
 	/* waiting for AuthInfo from HLR/AUC */
 	VLR_SUB_AS_NEEDS_AUTH_WAIT_AI,
@@ -66,7 +66,7 @@
 	VLR_ULA_E_SEND_ID_NACK,	/* Result of Send-ID from PVLR */
 	VLR_ULA_E_AUTH_RES,	/* Result of auth procedure */
 	VLR_ULA_E_CIPH_RES,	/* Result of Ciphering Mode Command */
-	VLR_ULA_E_ID_IMSI,	/* IMSI recieved from MS */
+	VLR_ULA_E_ID_IMSI,	/* IMSI received from MS */
 	VLR_ULA_E_ID_IMEI,	/* IMEI received from MS */
 	VLR_ULA_E_ID_IMEISV,	/* IMEISV received from MS */
 	VLR_ULA_E_HLR_IMEI_ACK,	/* Check_IMEI_VLR result from HLR */
@@ -420,7 +420,7 @@
 
 void vlr_subscr_enable_expire_lu(struct vlr_subscr *vsub);
 
-/* Process Acccess Request FSM */
+/* Process Access Request FSM */
 
 enum proc_arq_vlr_event {
 	PR_ARQ_E_START,
diff --git a/src/libmsc/gsm_04_08.c b/src/libmsc/gsm_04_08.c
index 0bdc4fb..750c766 100644
--- a/src/libmsc/gsm_04_08.c
+++ b/src/libmsc/gsm_04_08.c
@@ -341,7 +341,7 @@
 	}
 
 	/* TODO: 10.5.1.6 MS Classmark for UMTS / Classmark 2 */
-	/* TODO: 10.5.3.14 Aditional update parameters (CS fallback calls) */
+	/* TODO: 10.5.3.14 Additional update parameters (CS fallback calls) */
 	/* TODO: 10.5.7.8 Device properties */
 	/* TODO: 10.5.1.15 MS network feature support */
 
@@ -676,7 +676,7 @@
 /*
  * Handle CM Service Requests
  * a) Verify that the packet is long enough to contain the information
- *    we require otherwsie reject with INCORRECT_MESSAGE
+ *    we require otherwise reject with INCORRECT_MESSAGE
  * b) Try to parse the TMSI. If we do not have one reject
  * c) Check that we know the subscriber with the TMSI otherwise reject
  *    with a HLR cause
diff --git a/src/libmsc/gsm_04_08_cc.c b/src/libmsc/gsm_04_08_cc.c
index 7e2d70b..4e604e5 100644
--- a/src/libmsc/gsm_04_08_cc.c
+++ b/src/libmsc/gsm_04_08_cc.c
@@ -280,7 +280,7 @@
 			mncc_set_cause(&rel, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
 			gsm48_cc_tx_release(trans, &rel);
 		}
-		/* Ressource unavailable */
+		/* Resource unavailable */
 		if (trans->cc.mncc_initiated)
 			mncc_release_ind(trans->net, trans, trans->callref,
 					 GSM48_CAUSE_LOC_PRN_S_LU,
@@ -1922,7 +1922,7 @@
 		if (!trans) {
 			LOG_TRANS(trans, LOGL_ERROR, "No memory for trans.\n");
 			vlr_subscr_put(vsub, __func__);
-			/* Ressource unavailable */
+			/* Resource unavailable */
 			mncc_release_ind(net, NULL, data->callref,
 					 GSM48_CAUSE_LOC_PRN_S_LU,
 					 GSM48_CC_CAUSE_RESOURCE_UNAVAIL);
diff --git a/src/libmsc/gsm_09_11.c b/src/libmsc/gsm_09_11.c
index 8a13cda..b696a67 100644
--- a/src/libmsc/gsm_09_11.c
+++ b/src/libmsc/gsm_09_11.c
@@ -265,7 +265,7 @@
 
 	if (trans->msc_a) {
 		LOG_MSC_A_CAT(msc_a, DPAG, LOGL_ERROR,
-			      "Handle paging error: transaction already associated with subsciber,"
+			      "Handle paging error: transaction already associated with subscriber,"
 			      " apparently it was already handled. Skip.\n");
 		return;
 	}
diff --git a/src/libmsc/mncc_call.c b/src/libmsc/mncc_call.c
index 34c7299..e5fc820 100644
--- a/src/libmsc/mncc_call.c
+++ b/src/libmsc/mncc_call.c
@@ -192,7 +192,7 @@
 
 /* Disassociate the rtp_stream from this MNCC call instance, and clear the remote RTP IP:port info.
  * When the MNCC FSM ends for any reason, it will release the RTP stream (which usually triggers complete tear down of
- * the call_leg and CC transaction). If the RTP stream should still remain in use, e.g. during Subseqent inter-MSC
+ * the call_leg and CC transaction). If the RTP stream should still remain in use, e.g. during Subsequent inter-MSC
  * Handover where this MNCC was a forwarding to a remote MSC that is no longer needed, this function must be called
  * before the MNCC FSM instance terminates. Call this *before* setting a new remote RTP address on the rtp_stream, since
  * this clears the rtp_stream->remote ip:port information. */
diff --git a/src/libmsc/mncc_sock.c b/src/libmsc/mncc_sock.c
index 0a4e99b..670d692 100644
--- a/src/libmsc/mncc_sock.c
+++ b/src/libmsc/mncc_sock.c
@@ -82,7 +82,7 @@
 	/* re-enable the generation of ACCEPT for new connections */
 	state->listen_bfd.when |= BSC_FD_READ;
 
-	/* release all exisitng calls */
+	/* release all existing calls */
 	gsm0408_clear_all_trans(state->net, TRANS_CC);
 
 	/* flush the queue */
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index 3c316ea..0b07fbc 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -1323,7 +1323,7 @@
 			dst = &vsub->classmark;
 	}
 
-	LOG_MSC_A(msc_a, LOGL_DEBUG, "A5 capabilities recived from Classmark Update: %s\n",
+	LOG_MSC_A(msc_a, LOGL_DEBUG, "A5 capabilities received from Classmark Update: %s\n",
 		  osmo_gsm48_classmark_a5_name(classmark));
 	osmo_gsm48_classmark_update(dst, classmark);
 
@@ -1643,7 +1643,7 @@
 							 MSC_EV_CALL_LEG_RTP_COMPLETE);
 		OSMO_ASSERT(cl);
 
-		/* HACK: We put the connection in loopback mode at the beginnig to
+		/* HACK: We put the connection in loopback mode at the beginning to
 		 * trick the hNodeB into doing the IuUP negotiation with itself.
 		 * This is a hack we need because osmo-mgw does not support IuUP yet, see OS#2459. */
 		if (msc_a->c.ran->type == OSMO_RAT_UTRAN_IU)
diff --git a/src/libmsc/msc_vty.c b/src/libmsc/msc_vty.c
index 51504ef..f833585 100644
--- a/src/libmsc/msc_vty.c
+++ b/src/libmsc/msc_vty.c
@@ -1929,7 +1929,7 @@
 {
 	if (vty->type != VTY_FILE) {
 		vty_out(vty, "The IPA name cannot be changed at run-time; "
-			"It can only be set in the configuraton file.%s", VTY_NEWLINE);
+			"It can only be set in the configuration file.%s", VTY_NEWLINE);
 		return CMD_WARNING;
 	}
 
diff --git a/src/libmsc/ran_msg_a.c b/src/libmsc/ran_msg_a.c
index 59789b0..cb228ef 100644
--- a/src/libmsc/ran_msg_a.c
+++ b/src/libmsc/ran_msg_a.c
@@ -514,7 +514,7 @@
 		int i;
 		if (gsm0808_dec_encrypt_info(&encr_info, ie_encryption_information->val, ie_encryption_information->len)
 		    <= 0) {
-			LOG_RAN_A_DEC_MSG(LOGL_ERROR, "Failed to decode Encryption Informaiton IE\n");
+			LOG_RAN_A_DEC_MSG(LOGL_ERROR, "Failed to decode Encryption Information IE\n");
 			return -EINVAL;
 		}
 
@@ -524,7 +524,7 @@
 		}
 
 		if (encr_info.key_len > sizeof(geran_encr.key)) {
-			LOG_RAN_A_DEC_MSG(LOGL_ERROR, "Failed to decode Encryption Informaiton IE:"
+			LOG_RAN_A_DEC_MSG(LOGL_ERROR, "Failed to decode Encryption Information IE:"
 					  " encryption key is too long: %u\n", geran_encr.key_len);
 			return -EINVAL;
 		}
diff --git a/src/libmsc/ran_peer.c b/src/libmsc/ran_peer.c
index 77740a0..da88873 100644
--- a/src/libmsc/ran_peer.c
+++ b/src/libmsc/ran_peer.c
@@ -650,7 +650,7 @@
 
 	switch (page_where) {
 	case CELL_IDENT_NO_CELL:
-		LOG_SCCP_RAN_CAT(sri, DPAG, LOGL_ERROR, "Asked to page on NO_CELL, wich doesn't make sense.\n");
+		LOG_SCCP_RAN_CAT(sri, DPAG, LOGL_ERROR, "Asked to page on NO_CELL, which doesn't make sense.\n");
 		return 0;
 
 	case CELL_IDENT_UTRAN_PLMN_LAC_RNC:
diff --git a/src/libmsc/sgs_iface.c b/src/libmsc/sgs_iface.c
index 5ccded7..422ce72 100644
--- a/src/libmsc/sgs_iface.c
+++ b/src/libmsc/sgs_iface.c
@@ -336,7 +336,7 @@
 }
 
 /* Comfortable status message generator that also generates some basic
- * context-dependent dependand log output */
+ * context-dependent log output */
 static int sgs_tx_status(struct sgs_connection *sgc, const char *imsi, enum sgsap_sgs_cause cause, struct msgb *msg,
 			 int sgsap_iei)
 {
@@ -352,7 +352,7 @@
 		LOGSGC_VSUB(sgc, subscr_info(imsi), LOGL_ERROR, "Rx %s with invalid mandatory %s IEI!\n",
 			    sgsap_msg_type_name(msg->data[0]), sgsap_iei_name(sgsap_iei));
 	} else if (cause == SGSAP_SGS_CAUSE_COND_IE_ERROR) {
-		LOGSGC_VSUB(sgc, subscr_info(imsi), LOGL_ERROR, "Rx %s with errornous conditional %s IEI!\n",
+		LOGSGC_VSUB(sgc, subscr_info(imsi), LOGL_ERROR, "Rx %s with erroneous conditional %s IEI!\n",
 			    sgsap_msg_type_name(msg->data[0]), sgsap_iei_name(sgsap_iei));
 	} else {
 		LOGSGC_VSUB(sgc, subscr_info(imsi), LOGL_ERROR, "Rx %s failed with cause %s at %s IEI!\n",
@@ -860,7 +860,7 @@
 	vlr_subscr_put(vsub, __func__);
 
 	/* If we do not find an existing connection and allocating a new one
-	 * faild, give up and return status. */
+	 * failed, give up and return status. */
 	if (!msc_a)
 		return sgs_tx_status(sgc, imsi, SGSAP_SGS_CAUSE_MSG_INCOMP_STATE, msg, 0);
 
@@ -1278,7 +1278,7 @@
 	sgs_tx(mme->conn, msg_sgs);
 }
 
-/*! initalize SGs new interface
+/*! initialize SGs new interface
  *  \param[in] ctx talloc context
  *  \param[in] network associated gsm network
  *  \returns returns allocated sgs_stae, NULL in case of error. */
diff --git a/src/libmsc/smpp_openbsc.c b/src/libmsc/smpp_openbsc.c
index e4c3891..98b3b53 100644
--- a/src/libmsc/smpp_openbsc.c
+++ b/src/libmsc/smpp_openbsc.c
@@ -319,7 +319,7 @@
 
 	llist_for_each_entry(esme, &smsc->esme_list, list) {
 		/* we currently send an alert notification to each ESME that is
-		 * connected, and do not require a (non-existant) delivery
+		 * connected, and do not require a (non-existent) delivery
 		 * pending flag to be set before. */
 		if (!esme->bind_flags) {
 			LOGP(DSMPP, LOGL_DEBUG,
@@ -367,7 +367,7 @@
 		 * to the ESME */
 	case S_SMS_UNKNOWN_ERROR:
 		if (sms->smpp.transaction_mode) {
-			/* Send back the SUBMIT-SM response with apropriate error */
+			/* Send back the SUBMIT-SM response with appropriate error */
 			LOGP(DLSMS, LOGL_INFO, "SMPP SUBMIT-SM: Error\n");
 			rc = smpp_tx_submit_r(sms->smpp.esme,
 					      sms->smpp.sequence_nr,
diff --git a/src/libmsc/sms_queue.c b/src/libmsc/sms_queue.c
index d60cb4a..c00a8c6 100644
--- a/src/libmsc/sms_queue.c
+++ b/src/libmsc/sms_queue.c
@@ -1,4 +1,4 @@
-/* SMS queue to continously attempt to deliver SMS */
+/* SMS queue to continuously attempt to deliver SMS */
 /*
  * (C) 2010 by Holger Hans Peter Freyther <zecke@selfish.org>
  * All Rights Reserved
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c
index ca6f90d..0f9c991 100644
--- a/src/libvlr/vlr.c
+++ b/src/libvlr/vlr.c
@@ -360,7 +360,7 @@
 }
 
 /* Find subscriber by IMSI, or create new subscriber if not found.
- * \param[in] vlr  VLR instace.
+ * \param[in] vlr  VLR instance.
  * \param[in] imsi  IMSI string.
  * \param[out] created  if non-NULL, returns whether a new entry was created. */
 struct vlr_subscr *_vlr_subscr_find_or_create_by_imsi(struct vlr_instance *vlr,
@@ -390,7 +390,7 @@
 }
 
 /* Find subscriber by TMSI, or create new subscriber if not found.
- * \param[in] vlr  VLR instace.
+ * \param[in] vlr  VLR instance.
  * \param[in] tmsi  TMSI.
  * \param[out] created  if non-NULL, returns whether a new entry was created. */
 struct vlr_subscr *_vlr_subscr_find_or_create_by_tmsi(struct vlr_instance *vlr,
@@ -730,7 +730,7 @@
 
 		if (key_seq >= ARRAY_SIZE(vsub->auth_tuples)) {
 			LOGVSUBP(LOGL_NOTICE, vsub,
-				"Skipping auth tuple wih invalid cksn %zu\n",
+				"Skipping auth tuple with invalid cksn %zu\n",
 				key_seq);
 			continue;
 		}
diff --git a/src/libvlr/vlr_auth_fsm.c b/src/libvlr/vlr_auth_fsm.c
index 036c3d7..dcdf584 100644
--- a/src/libvlr/vlr_auth_fsm.c
+++ b/src/libvlr/vlr_auth_fsm.c
@@ -1,4 +1,4 @@
-/* Osmocom Visitor Location Register (VLR) Autentication FSM */
+/* Osmocom Visitor Location Register (VLR) Authentication FSM */
 
 /* (C) 2016 by Harald Welte <laforge@gnumonks.org>
  *
diff --git a/src/libvlr/vlr_lu_fsm.c b/src/libvlr/vlr_lu_fsm.c
index 2db5711..e4d40f0 100644
--- a/src/libvlr/vlr_lu_fsm.c
+++ b/src/libvlr/vlr_lu_fsm.c
@@ -688,7 +688,7 @@
 static bool lai_in_this_vlr(struct vlr_instance *vlr,
 			    const struct osmo_location_area_id *lai)
 {
-	/* TODO: VLR needs to keep a locally configued list of LAIs */
+	/* TODO: VLR needs to keep a locally configured list of LAIs */
 	return true;
 }
 
diff --git a/src/libvlr/vlr_sgs.c b/src/libvlr/vlr_sgs.c
index 452de2c..269dda6 100644
--- a/src/libvlr/vlr_sgs.c
+++ b/src/libvlr/vlr_sgs.c
@@ -44,7 +44,7 @@
 };
 
 /* Reset all SGs-Associations back to zero.
- * \param[in] vlr VLR instace. */
+ * \param[in] vlr VLR instance. */
 void vlr_sgs_reset(struct vlr_instance *vlr)
 {
 	struct vlr_subscr *vsub;
@@ -59,11 +59,11 @@
 }
 
 /*! Perform an SGs location update.
- * \param[in] vlr VLR instace.
+ * \param[in] vlr VLR instance.
  * \param[in] cfg SGs interface configuration parameters.
- * \param[in] response_cb calback function that is called when LU is done.
- * \param[in] paging_cb calback function that is called when LU needs to page.
- * \param[in] mminfo_cb calback function that is called to provide MM info to the UE.
+ * \param[in] response_cb callback function that is called when LU is done.
+ * \param[in] paging_cb callback function that is called when LU needs to page.
+ * \param[in] mminfo_cb callback function that is called to provide MM info to the UE.
  * \param[in] mme_name fqdn of the requesting MME (mme-name).
  * \param[in] type location update type (normal or IMSI attach).
  * \param[in] imsi mobile identity (IMSI).
@@ -299,7 +299,7 @@
 {
 	struct vlr_subscr *vsub = arg;
 
-	/* 3GPP TS 29.118 does not specify a specif action that has to happen
+	/* 3GPP TS 29.118 does not specify a specific action that has to happen
 	 * in case Ts5 times out. The timeout just indicates that the paging
 	 * failed. Other actions may check the status of Ts5 to see if a paging
 	 * is still ongoing or not. */
@@ -327,7 +327,7 @@
 	/* Note: 3GPP TS 29.118, chapter 4.2.2 mentions paging in the FSM
 	 * diagram, but paging never causes a state transition except when
 	 * an explicit failure is indicated (MME actively rejects paging).
-	 * Apparantly it is also possible that an LU happens while the paging
+	 * Apparently it is also possible that an LU happens while the paging
 	 * is still ongoing and Ts5 is running. (chapter 5.1.2.3). This means
 	 * that the paging procedure is intended to run in parallel to the
 	 * SGs FSM and given that the benaviour around Ts5 must be implemented
diff --git a/src/libvlr/vlr_sgs_fsm.c b/src/libvlr/vlr_sgs_fsm.c
index 49ad09a..a131b7e 100644
--- a/src/libvlr/vlr_sgs_fsm.c
+++ b/src/libvlr/vlr_sgs_fsm.c
@@ -54,7 +54,7 @@
 	struct vlr_subscr *vsub = fi->priv;
 	osmo_fsm_inst_state_chg(fi, SGS_UE_ST_NULL, 0, 0);
 
-	/* Note: This is only relevent for cases where we are in the middle
+	/* Note: This is only relevant for cases where we are in the middle
 	 * of an TMSI reallocation procedure. Should a failure of some sort
 	 * put us to NULL state, we have to free the pending TMSI */
 	vsub->tmsi_new = GSM_RESERVED_TMSI;
@@ -156,7 +156,7 @@
 		/* Check if we expect a TMSI REALLOCATION COMPLETE message from the MME
 		 * by checking the tmsi_new flag. If this flag is not GSM_RESERVED_TMSI
 		 * we know that we have a TMSI pending and need to wait for the MME
-		 * to acknowlege first */
+		 * to acknowledge first */
 		if (vsub->tmsi_new != GSM_RESERVED_TMSI) {
 			osmo_fsm_inst_state_chg(fi, SGS_UE_ST_ASSOCIATED, vsub->sgs.cfg.timer[SGS_STATE_TS6_2],
 						SGS_STATE_TS6_2);
@@ -355,7 +355,7 @@
 	.event_names = sgs_ue_fsm_event_names,
 };
 
-/*! Initalize/Register SGs FSM in osmo-fsm subsystem */
+/*! Initialize/Register SGs FSM in osmo-fsm subsystem */
 void vlr_sgs_fsm_init(void)
 {
 	if (osmo_fsm_find_by_name(sgs_ue_fsm.name) != &sgs_ue_fsm)
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
index 155afbe..9026241 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.c
@@ -1267,7 +1267,7 @@
 }
 
 /* During CM Service Request or Paging Response we already have Classmark 2 that indicates A5/3
- * availablity. Here, in a hacky way remove the knowledge of Classmark 2 to tickle a code path where
+ * availability. Here, in a hacky way remove the knowledge of Classmark 2 to tickle a code path where
  * proc_arq_fsm needs a Classmark Update during Ciphering. Shouldn't happen in reality though. */
 static void test_cm_service_needs_classmark_update()
 {
diff --git a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
index e3949e9..96a5303 100644
--- a/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
+++ b/tests/msc_vlr/msc_vlr_test_gsm_ciph.err
@@ -2995,7 +2995,7 @@
   lu_result_sent == 0
 - BSC sends back a BSSMAP Classmark Update, that triggers the Ciphering Mode Command in A5/3
 DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: RAN decode: CLASSMARK_UPDATE
-DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: A5 capabilities recived from Classmark Update: no-cm1 no-cm2 no-cm3
+DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: A5 capabilities received from Classmark Update: no-cm1 no-cm2 no-cm3
 DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: Received Event MSC_A_EV_CLASSMARK_UPDATE
 DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: state_chg to MSC_A_ST_AUTH_CIPH
 DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: CIPHER_MODE_COMMAND on GERAN-A
@@ -3639,7 +3639,7 @@
   lu_result_sent == 0
 - BSC sends back a BSSMAP Classmark Update, that triggers the Ciphering Mode Command in A5/3
 DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: RAN decode: CLASSMARK_UPDATE
-DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: A5 capabilities recived from Classmark Update: no-cm1 no-cm2 no-cm3
+DBSSAP msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: A5 capabilities received from Classmark Update: no-cm1 no-cm2 no-cm3
 DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: Received Event MSC_A_EV_CLASSMARK_UPDATE
 DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: state_chg to MSC_A_ST_AUTH_CIPH
 DMSC msc_a(IMSI-901700000004620:GERAN-A:LU){MSC_A_ST_AUTH_CIPH}: RAN encode: CIPHER_MODE_COMMAND on GERAN-A
@@ -3990,7 +3990,7 @@
 DREF msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: - rx_from_ms: now used by 1 (paging-response)
 - BSC sends back a BSSMAP Classmark Update, that triggers the Ciphering Mode Command in A5/3
 DBSSAP msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: RAN decode: CLASSMARK_UPDATE
-DBSSAP msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: A5 capabilities recived from Classmark Update: no-cm1 no-cm2 no-cm3
+DBSSAP msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: A5 capabilities received from Classmark Update: no-cm1 no-cm2 no-cm3
 DMSC msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: Received Event MSC_A_EV_CLASSMARK_UPDATE
 DMSC msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_WAIT_CLASSMARK_UPDATE}: state_chg to MSC_A_ST_AUTH_CIPH
 DMSC msc_a(IMSI-901700000004620:MSISDN-42342:GERAN-A:PAGING_RESP){MSC_A_ST_AUTH_CIPH}: RAN encode: CIPHER_MODE_COMMAND on GERAN-A
