diff --git a/lib/gen_robot_valid.py b/lib/gen_robot_valid.py
index 556561d..160da0c 100755
--- a/lib/gen_robot_valid.py
+++ b/lib/gen_robot_valid.py
@@ -214,6 +214,14 @@
     process_error_message(error_message)
 
 
+def valid_length(var_name, *args, **kwargs):
+
+    var_value, args, kwargs = valid_init(var_name, *args, **kwargs)
+    error_message = \
+        gv.valid_length(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 = [
diff --git a/lib/gen_valid.py b/lib/gen_valid.py
index 53466dc..1faf3a7 100755
--- a/lib/gen_valid.py
+++ b/lib/gen_valid.py
@@ -310,11 +310,11 @@
     """
 
     error_message = ""
-    if not lower and not upper:
+    if lower is None and upper is None:
         return process_error_message(error_message)
-    if not lower and var_value <= upper:
+    if lower is None and var_value <= upper:
         return process_error_message(error_message)
-    if not upper and var_value >= lower:
+    if upper is None and var_value >= lower:
         return process_error_message(error_message)
     if lower and upper:
         if lower > upper:
@@ -592,6 +592,37 @@
     return process_error_message(error_message)
 
 
+def valid_length(var_value, min_length=None, max_length=None, *args, **kwargs):
+    r"""
+    The variable value is valid if it is an object (e.g. list, dictionary)
+    whose length is within the specified range.
+
+    Description of argument(s):
+    var_value                       The value being validated.
+    min_length                      The minimum length of the object.  If not
+                                    None, the length of var_value must be
+                                    greater than or equal to min_length.
+    max_length                      The maximum length of the object.  If not
+                                    None, the length of var_value must be less
+                                    than or equal to min_length.
+    """
+
+    error_message = ""
+    length = len(var_value)
+    error_message = valid_range(length, min_length, max_length)
+    if error_message:
+        var_name = get_var_name(*args, **kwargs)
+        error_message = "The length of the following object is not within the"
+        error_message += " expected range:\n"
+        error_message += gp.sprint_var(length)
+        error_message += gp.sprint_varx(var_name, var_value, gp.blank())
+        error_message += "\n"
+        error_message += gp.sprint_vars(min_length, max_length)
+        return process_error_message(error_message)
+
+    return process_error_message(error_message)
+
+
 # Modify selected function docstrings by adding headers/footers.
 
 func_names = [
