diff --git a/say.c b/say.c
index 9e47abad9261aed10c9bd6e31a7f1f4b36659503..40b5131ef3ca981bf9940965d63095b4b7afb002 100755
--- a/say.c
+++ b/say.c
@@ -25,7 +25,16 @@ int ast_say_digit_str(struct ast_channel *chan, char *fn2, char *ints, char *lan
 	int num = 0;
 	int res = 0;
 	while(fn2[num] && !res) {
-		snprintf(fn, sizeof(fn), "digits/%c", fn2[num]);
+		switch (fn2[num]) {
+			case ('*'):
+				snprintf(fn, sizeof(fn), "digits/star");
+				break;
+			case ('#'):
+				snprintf(fn, sizeof(fn), "digits/pound");
+				break;
+			default:
+				snprintf(fn, sizeof(fn), "digits/%c", fn2[num]);
+			}
 		res = ast_streamfile(chan, fn, lang);
 		if (!res) 
 			res = ast_waitstream(chan, ints);
diff --git a/sounds.txt b/sounds.txt
index 70f11392a1a2e077cde2a2729245d6ff90596a8c..86655bc47820aa1266b7ff95c2ace21a560959c3 100755
--- a/sounds.txt
+++ b/sounds.txt
@@ -320,7 +320,7 @@
 
 %p-m.gsm%P.M.
 
-%thousand.gsm%thousand
+%pound.gsm%pound
 
 %privacy-incorrect.gsm%will_be_added_later
 
@@ -330,6 +330,10 @@
 
 %privacy-unident.gsm%will_be_added_later
 
+%star.gsm%star
+
+%thousand.gsm%thousand
+
 %at.gsm%at
 
 %h-1.gsm%first
diff --git a/sounds/digits/pound.gsm b/sounds/digits/pound.gsm
new file mode 100755
index 0000000000000000000000000000000000000000..a09fb0f6d0702a8cad8678a7458e4c2180bb9113
Binary files /dev/null and b/sounds/digits/pound.gsm differ
diff --git a/sounds/digits/star.gsm b/sounds/digits/star.gsm
new file mode 100755
index 0000000000000000000000000000000000000000..fcc426212ed8551924a63a3e87e81847656ee0bc
Binary files /dev/null and b/sounds/digits/star.gsm differ