Add case for 'R' and a little bit of cleanup.  Andrew Kuchling.
diff --git a/Modules/soundex.c b/Modules/soundex.c
index c1cbf70..fe00ac6 100644
--- a/Modules/soundex.c
+++ b/Modules/soundex.c
@@ -26,7 +26,7 @@
     char *sptr = str;           /* pointer into str */
     char *rptr = result;        /* pointer into result */
     
-    if(*str == NULL)
+    if(*str == '\0')
     {
         strcpy(result,"000000");
         return;
@@ -39,19 +39,20 @@
     /* Translate the rest of the input string into result.  The following
        transformations are used:
 
-       1) All vowles, W, and H, are skipped.
+       1) All vowels, W, and H, are skipped.
 
        2) BFPV = 1
           CGJKQSXZ = 2
           DT = 3
           L = 4
           MN = 5
+          R = 6
 
        3) Only translate the first of adjacent equal translations.  I.E.
           remove duplicate digits.
     */
 
-    for(;(rptr - result) < 6 &&  *sptr != NULL;sptr++)
+    for(;(rptr - result) < 6 &&  *sptr != '\0';sptr++)
     {
         switch (toupper(*sptr))
         {
@@ -95,6 +96,9 @@
             if(*(rptr - 1) != '5')
                 *(rptr++) = '5';
             break;
+        case 'R':
+            if(*(rptr -1) != '6')
+                *(rptr++) = '6';
         default:
             break;
         }
@@ -107,7 +111,7 @@
 
     /* Terminate the result string.
      */
-    *(result + 6) = NULL;
+    *(result + 6) = '\0';
 }
 
 
@@ -119,7 +123,6 @@
 get_soundex(PyObject *self, PyObject *args)
 {
 	char *str;
-	int retval;
 	char sdx[7];
 
 	if(!PyArg_ParseTuple( args, "s", &str))
@@ -136,7 +139,6 @@
 sound_similar(PyObject *self, PyObject *args)
 {
     char *str1, *str2;
-    int return_value;
     char res1[7], res2[7];
     
     if(!PyArg_ParseTuple(args, "ss", &str1, &str2))