diff --git a/utils.c b/utils.c
index ac2d11ba91d23d763d8062e8f1e7a32bdd6f3826..378f74be2654942f61d36c8665b8af15f3090df2 100644
--- a/utils.c
+++ b/utils.c
@@ -1022,7 +1022,11 @@ void __ast_string_field_index_build(struct ast_string_field_mgr *mgr,
 	va_list ap1, ap2;
 
 	va_start(ap1, format);
+#if defined(__FreeBSD__)
+	va_start(ap2, format);		/* va_copy does not exist on FreeBSD */
+#else
 	va_copy(ap2, ap1);
+#endif
 
 	needed = vsnprintf(mgr->pool->base + mgr->used, mgr->space, format, ap1) + 1;