diff --git a/include/asterisk/strings.h b/include/asterisk/strings.h
index 85393b4f95995d07532dca839cd9218764ec9797..2d66716cd33dea2d77ad216ae3e8486200749d19 100644
--- a/include/asterisk/strings.h
+++ b/include/asterisk/strings.h
@@ -1257,19 +1257,7 @@ static force_inline int attribute_pure ast_str_case_hash(const char *str)
  *
  * \retval str for convenience
  */
-static force_inline char *attribute_pure ast_str_to_lower(char *str)
-{
-	char *str_orig = str;
-	if (!str) {
-		return str;
-	}
-
-	for (; *str; ++str) {
-		*str = tolower(*str);
-	}
-
-	return str_orig;
-}
+char *attribute_pure ast_str_to_lower(char *str);
 
 /*!
  * \brief Convert a string to all upper-case
diff --git a/main/strings.c b/main/strings.c
index 8102c3e9d0245d726de5fd9f9c22552d04fe4065..43fbca4aa935a23354a4849ef813704ca641d0b1 100644
--- a/main/strings.c
+++ b/main/strings.c
@@ -391,3 +391,17 @@ char *ast_read_line_from_buffer(char **buffer)
 
 	return start;
 }
+
+char *attribute_pure ast_str_to_lower(char *str)
+{
+	char *str_orig = str;
+	if (!str) {
+		return str;
+	}
+
+	for (; *str; ++str) {
+		*str = tolower(*str);
+	}
+
+	return str_orig;
+}