diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h
index 6e3a7d5db9ac4a28533e06e426b0ee66ac1e1967..25f7e06f41bd28102165f08d9d40ecd4b585c4f0 100755
--- a/include/asterisk/utils.h
+++ b/include/asterisk/utils.h
@@ -160,6 +160,8 @@ struct ast_realloca {
 #endif
 #define inet_ntoa __dont__use__inet_ntoa__use__ast_inet_ntoa__instead__
 
+#define AST_STACK_SIZE 128 * 1024
+
 #ifdef __linux__
 #define ast_pthread_create pthread_create
 #define ast_strcasestr strcasestr
diff --git a/utils.c b/utils.c
index 0d7a8781c3aa288633d41246c5c18019634765c7..aa23541085b24ea84a413de90e01750b3ffd85b2 100755
--- a/utils.c
+++ b/utils.c
@@ -398,7 +398,7 @@ int ast_pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_ro
 		pthread_attr_init(&lattr);
 		attr = &lattr;
 	}
-	errno = pthread_attr_setstacksize(attr, PTHREAD_ATTR_STACKSIZE);
+	errno = pthread_attr_setstacksize(attr, AST_STACKSIZE);
 	if (errno)
 		ast_log(LOG_WARNING, "pthread_attr_setstacksize returned non-zero: %s\n", strerror(errno));
 	return pthread_create(thread, attr, start_routine, data); /* We're in ast_pthread_create, so it's okay */