diff --git a/apps/app_festival.c b/apps/app_festival.c
index c6a40089ab0b9a0a4ea99b03f8bbf0b7edf15ddc..14744bab5a7c78fd1c55cf1b1c826987d0160e9a 100755
--- a/apps/app_festival.c
+++ b/apps/app_festival.c
@@ -362,7 +362,7 @@ static int festival_exec(struct ast_channel *chan, void *vdata)
     		snprintf(cachefile, sizeof(cachefile), "%s/%s", cachedir, MD5Hex);
     		fdesc=open(cachefile,O_RDWR);
     		if (fdesc==-1) {
-    			fdesc=open(cachefile,O_CREAT|O_RDWR,0);
+    			fdesc=open(cachefile,O_CREAT|O_RDWR,S_IRWXU);
     			if (fdesc!=-1) {
     				writecache=1;
     				strln=strlen((char *)data);