diff --git a/lib/gen_robot_valid.py b/lib/gen_robot_valid.py
index d49b00e..556561d 100755
--- a/lib/gen_robot_valid.py
+++ b/lib/gen_robot_valid.py
@@ -206,12 +206,20 @@
     process_error_message(error_message)
 
 
+def valid_program(var_name, *args, **kwargs):
+
+    var_value, args, kwargs = valid_init(var_name, *args, **kwargs)
+    error_message = \
+        gv.valid_program(var_value, *args, var_name=var_name, **kwargs)
+    process_error_message(error_message)
+
+
 # Modify the validation function docstrings by calling customize_doc_string
 # for each function in the func_names list.
 func_names = [
     "valid_type", "valid_value", "valid_range", "valid_integer",
     "valid_dir_path", "valid_file_path", "valid_path", "valid_list",
-    "valid_dict"
+    "valid_dict", "valid_program"
 ]
 
 for func_name in func_names:
diff --git a/lib/gen_valid.py b/lib/gen_valid.py
index 6ead645..8725077 100755
--- a/lib/gen_valid.py
+++ b/lib/gen_valid.py
@@ -6,7 +6,9 @@
 """
 
 import os
+import re
 import gen_print as gp
+import gen_cmd as gc
 import func_args as fa
 
 exit_on_error = False
@@ -568,12 +570,35 @@
     return process_error_message(error_message)
 
 
+def valid_program(var_value, *args, **kwargs):
+    r"""
+    The variable value is valid if it contains the name of a program which can
+    be located using the "which" command.
+
+    Description of argument(s):
+    var_value                       The value being validated.
+    """
+
+    error_message = ""
+    rc, out_buf = gc.shell_cmd("which " + var_value, quiet=1, show_err=0,
+                               ignore_err=1)
+    if rc:
+        var_name = get_var_name(*args, **kwargs)
+        error_message += "The following required program could not be found"
+        error_message += " using the $PATH environment variable:\n"
+        error_message += gp.sprint_varx(var_name, var_value)
+        PATH = os.environ.get("PATH", "").split(":")
+        error_message += "\n"
+        error_message += gp.sprint_var(PATH)
+    return process_error_message(error_message)
+
+
 # Modify selected function docstrings by adding headers/footers.
 
 func_names = [
     "valid_type", "valid_value", "valid_range", "valid_integer",
     "valid_dir_path", "valid_file_path", "valid_path", "valid_list",
-    "valid_dict"
+    "valid_dict", "valid_program"
 ]
 
 raw_doc_strings = {}
