diff --git a/apiclient/discovery.py b/apiclient/discovery.py
index 7cb4852..bcfdd69 100644
--- a/apiclient/discovery.py
+++ b/apiclient/discovery.py
@@ -393,10 +393,15 @@
 
       for name, regex in pattern_params.iteritems():
         if name in kwargs:
-          if re.match(regex, kwargs[name]) is None:
-            raise TypeError(
-                'Parameter "%s" value "%s" does not match the pattern "%s"' %
-                (name, kwargs[name], regex))
+          if isinstance(kwargs[name], basestring):
+            pvalues = [kwargs[name]]
+          else:
+            pvalues = kwargs[name]
+          for pvalue in pvalues:
+            if re.match(regex, pvalue) is None:
+              raise TypeError(
+                  'Parameter "%s" value "%s" does not match the pattern "%s"' %
+                  (name, pvalue, regex))
 
       for name, enums in enum_params.iteritems():
         if name in kwargs:
diff --git a/tests/data/zoo.json b/tests/data/zoo.json
index d4ae969..6e42da2 100644
--- a/tests/data/zoo.json
+++ b/tests/data/zoo.json
@@ -166,6 +166,13 @@
        "foo",
        "bar"
      ]
+    },
+    "rr": {
+     "type": "string",
+     "location": "query",
+     "required": false,
+     "repeated": true,
+     "pattern": "[a-z]+"
     }
    }
   }
diff --git a/tests/test_discovery.py b/tests/test_discovery.py
index 3b544b0..606796e 100644
--- a/tests/test_discovery.py
+++ b/tests/test_discovery.py
@@ -168,6 +168,10 @@
 
     request = zoo.query(
         q="foo", i="1", n="1", b="", a=[1,2,3], o={'a':1}, e='bar')
+
+    request = zoo.query(
+        q="foo", i="1", n="1", b="", a=[1,2,3], o={'a':1}, e='bar', rr=['foo',
+                                                                        'bar'])
     self._check_query_types(request)
 
   def test_optional_stack_query_parameters(self):
