diff --git a/configure.ac b/configure.ac
index 135b4bd..45b112f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -49,6 +49,7 @@ AM_CHECK_PYMOD(dbus,,,[AC_MSG_ERROR(Could not find python module: dbus)])
 AM_CHECK_PYMOD(cairo,,,[AC_MSG_ERROR(Could not find python module: cairo)])
 AM_CHECK_PYMOD(json,,,[AC_MSG_ERROR(Could not find python module: json)])
 AM_CHECK_PYMOD(xdg,,,[AC_MSG_ERROR(Could not find python module: xdg)])
+AM_CHECK_PYMOD(setproctitle,,,[AC_MSG_ERROR(Could not find python module: setproctitle)])
 AM_CHECK_PYMOD(brlapi,,[brlapi_available="yes"],[brlapi_available="no"])
 AM_CHECK_PYMOD(speechd,,[speechd_available="yes"],[speechd_available="no"])
 LOUIS_TABLE_DIR=""
diff --git a/src/orca/orca.in b/src/orca/orca.in
index cd5020e..c70f41a 100644
--- a/src/orca/orca.in
+++ b/src/orca/orca.in
@@ -93,9 +93,8 @@ cleanup()
         KILLARG="-TERM"
     fi
     USERID=$(id -u)
-    PATTERN="orca[.]orca|festival [-][-]server"
 
-    pkill $KILLARG -U $USERID -f "$PATTERN"
+    pkill $KILLARG -U $USERID -f "orca"
 }
 
 waitForCleanup()
diff --git a/src/orca/orca.py b/src/orca/orca.py
index ecd57cd..45727fe 100644
--- a/src/orca/orca.py
+++ b/src/orca/orca.py
@@ -34,6 +34,7 @@ import sys
 import time
 import unicodedata
 import shutil
+import setproctitle
 
 from gi.repository.Gio import Settings
 a11yAppSettings = Settings('org.gnome.desktop.a11y.applications')      
@@ -2198,6 +2199,10 @@ def main():
     an exit code of 0 means normal completion and an exit code of 50
     means Orca exited because of a hang."""
 
+    # Set the process title/name to orca.
+    #
+    setproctitle.setproctitle("orca")
+
     # Method to call when we think something might be hung.
     #
     settings.timeoutCallback = timeout
