diff --git a/net/asterisk-1.8.x/patches/300-word_alignment_arm.patch b/net/asterisk-1.8.x/patches/300-word_alignment_arm.patch
new file mode 100644
index 000000000..12d5551c1
--- /dev/null
+++ b/net/asterisk-1.8.x/patches/300-word_alignment_arm.patch
@@ -0,0 +1,20 @@
+--- a/main/utils.c
++++ b/main/utils.c
+@@ -1632,7 +1632,7 @@ ast_string_field __ast_string_field_allo
+ 	}
+ 
+ 	result = (*pool_head)->base + (*pool_head)->used;
+-#ifdef __sparc__
++#if defined(__sparc__) || defined(__mips__) || defined(__arm__)
+ 	/* SPARC requires that the allocation field be aligned. */
+ 	if ((long) result % sizeof(ast_string_field_allocation)) {
+ 		result++;
+@@ -1713,7 +1713,7 @@ void __ast_string_field_ptr_build_va(str
+ 		}
+ 	} else {
+ 		target = (*pool_head)->base + (*pool_head)->used + sizeof(ast_string_field_allocation);
+-#ifdef __sparc__
++#if defined(__sparc__) || defined(__mips__) || defined(__arm__)
+ 		if ((long) target % sizeof(ast_string_field_allocation)) {
+ 			target++;
+ 			space--;