diff --git a/codecs/codec_g723_1.c b/codecs/codec_g723_1.c
index ad56bb02ec5d1f9045f1dc67df47a7ab97e0225e..94ae898aa1ce5e7d9fa6060861b55222fe9d75f3 100755
--- a/codecs/codec_g723_1.c
+++ b/codecs/codec_g723_1.c
@@ -21,6 +21,7 @@
 #define TYPE_DONTSEND	 0x3
 #define TYPE_MASK	 0x3
 
+#include <sys/types.h>
 #include <asterisk/translate.h>
 #include <asterisk/module.h>
 #include <asterisk/logger.h>
diff --git a/pbx.c b/pbx.c
index 8298b8a9d751b635eac9d3741353d91922401be1..38a2865b18743a7e493b074ca2eaec856e2e3110 100755
--- a/pbx.c
+++ b/pbx.c
@@ -4333,8 +4333,8 @@ static int pbx_builtin_saynumber(struct ast_channel *chan, void *data)
 static int pbx_builtin_saydigits(struct ast_channel *chan, void *data)
 {
 	int res = 0;
-	if (data && atoi((char *)data))
-		res = ast_say_digits(chan, atoi((char *)data), "", chan->language);
+	if (data)
+		res = ast_say_digit_str(chan, (char *)data, "", chan->language);
 	return res;
 }