diff --git a/include/asterisk/stringfields.h b/include/asterisk/stringfields.h
index 2b9b7b23085bc0f6364298345954031167678618..c48e9382aafd796aad20315511c683661d6def61 100644
--- a/include/asterisk/stringfields.h
+++ b/include/asterisk/stringfields.h
@@ -290,7 +290,7 @@ typedef uint16_t ast_string_field_allocation;
 		if (*__p__ != (*ptr)) {											\
 			__ast_string_field_release_active((x)->__field_mgr_pool, (*ptr));				\
 		}													\
-		memcpy((void *) *__p__, __d__, __dlen__);								\
+		memcpy(* (void **) __p__, __d__, __dlen__);								\
 	}														\
 	} while (0)