diff --git a/include/osmocom/core/fsm.h b/include/osmocom/core/fsm.h
index 026ed01..77072ef 100644
--- a/include/osmocom/core/fsm.h
+++ b/include/osmocom/core/fsm.h
@@ -131,11 +131,40 @@
 const char *osmo_fsm_inst_name(struct osmo_fsm_inst *fi);
 const char *osmo_fsm_state_name(struct osmo_fsm *fsm, uint32_t state);
 
-int osmo_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t new_state,
-			    unsigned long timeout_secs, int T);
-int osmo_fsm_inst_dispatch(struct osmo_fsm_inst *fi, uint32_t event, void *data);
+/*! \brief perform a state change of the given FSM instance
+ *
+ *  This is a macro that calls _osmo_fsm_inst_state_chg() with the given
+ *  parameters as well as the caller's source file and line number for logging
+ *  purposes. See there for documentation.
+ */
+#define osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T) \
+	_osmo_fsm_inst_state_chg(fi, new_state, timeout_secs, T, \
+				 __BASE_FILE__, __LINE__)
+int _osmo_fsm_inst_state_chg(struct osmo_fsm_inst *fi, uint32_t new_state,
+			     unsigned long timeout_secs, int T,
+			     const char *file, int line);
 
-void osmo_fsm_inst_term(struct osmo_fsm_inst *fi,
-			enum osmo_fsm_term_cause cause, void *data);
+/*! \brief dispatch an event to an osmocom finite state machine instance
+ *
+ *  This is a macro that calls _osmo_fsm_inst_dispatch() with the given
+ *  parameters as well as the caller's source file and line number for logging
+ *  purposes. See there for documentation.
+ */
+#define osmo_fsm_inst_dispatch(fi, event, data) \
+	_osmo_fsm_inst_dispatch(fi, event, data, __BASE_FILE__, __LINE__)
+int _osmo_fsm_inst_dispatch(struct osmo_fsm_inst *fi, uint32_t event, void *data,
+			    const char *file, int line);
+
+/*! \brief Terminate FSM instance with given cause
+ *
+ *  This is a macro that calls _osmo_fsm_inst_term() with the given parameters
+ *  as well as the caller's source file and line number for logging purposes.
+ *  See there for documentation.
+ */
+#define osmo_fsm_inst_term(fi, cause, data) \
+	_osmo_fsm_inst_term(fi, cause, data, __BASE_FILE__, __LINE__)
+void _osmo_fsm_inst_term(struct osmo_fsm_inst *fi,
+			 enum osmo_fsm_term_cause cause, void *data,
+			 const char *file, int line);
 
 /*! @} */
diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h
index 1ca348a..fe9ae93 100644
--- a/include/osmocom/core/logging.h
+++ b/include/osmocom/core/logging.h
@@ -55,10 +55,7 @@
  *  \param[in] args variable argument list
  */
 #define LOGP(ss, level, fmt, args...) \
-	do { \
-		if (log_check_level(ss, level)) \
-			logp2(ss, level, __BASE_FILE__, __LINE__, 0, fmt, ##args); \
-	} while(0)
+	LOGPSRC(ss, level, NULL, 0, fmt, ## args)
 
 /*! \brief Continue a log message through the Osmocom logging framework
  *  \param[in] ss logging subsystem (e.g. \ref DLGLOBAL)
@@ -72,6 +69,28 @@
 			logp2(ss, level, __BASE_FILE__, __LINE__, 1, fmt, ##args); \
 	} while(0)
 
+/*! \brief Log through the Osmocom logging framework with explicit source.
+ *  If caller_file is passed as NULL, __BASE_FILE__ and __LINE__ are used
+ *  instead of caller_file and caller_line (so that this macro here defines
+ *  both cases in the same place, and to catch cases where callers fail to pass
+ *  a non-null filename string).
+ *  \param[in] ss logging subsystem (e.g. \ref DLGLOBAL)
+ *  \param[in] level logging level (e.g. \ref LOGL_NOTICE)
+ *  \param[in] caller_file caller's source file string (e.g. __BASE_FILE__)
+ *  \param[in] caller_line caller's source line nr (e.g. __LINE__)
+ *  \param[in] fmt format string
+ *  \param[in] args variable argument list
+ */
+#define LOGPSRC(ss, level, caller_file, caller_line, fmt, args...) \
+	do { \
+		if (log_check_level(ss, level)) {\
+			if (caller_file) \
+				logp2(ss, level, caller_file, caller_line, 0, fmt, ##args); \
+			else \
+				logp2(ss, level, __BASE_FILE__, __LINE__, 0, fmt, ##args); \
+		}\
+	} while(0)
+
 /*! \brief different log levels */
 #define LOGL_DEBUG	1	/*!< \brief debugging information */
 #define LOGL_INFO	3	/*!< \brief general information */
