diff --git a/pymongo/database.py b/pymongo/database.py
index <HASH>..<HASH> 100644
--- a/pymongo/database.py
+++ b/pymongo/database.py
@@ -355,11 +355,23 @@ class Database(object):
 
         result = self.command("validate", unicode(name), full=full)
 
+        valid = True
+        # Pre 1.9 results
         if "result" in result:
             info = result["result"]
             if info.find("exception") != -1 or info.find("corrupt") != -1:
                 raise CollectionInvalid("%s invalid: %s" % (name, info))
+        # Post 1.9 sharded results
+        elif "raw" in result:
+            for repl, res in result["raw"].iteritems():
+                if not res.get("valid", False):
+                    valid = False
+                    break
+        # Post 1.9 non-sharded results.
         elif not result.get("valid", False):
+            valid = False
+
+        if not valid:
             raise CollectionInvalid("%s invalid: %r" % (name, result))
 
         return result
Support <I> sharded output in validate_collection.