diff --git a/Lib/xml/dom/domreg.py b/Lib/xml/dom/domreg.py
index 14b87d6..0e6e615 100644
--- a/Lib/xml/dom/domreg.py
+++ b/Lib/xml/dom/domreg.py
@@ -2,6 +2,8 @@
 directly. Instead, the functions getDOMImplementation and
 registerDOMImplementation should be imported from xml.dom."""
 
+from xml.dom.minicompat import *  # isinstance, StringTypes
+
 # This is a list of well-known implementations.  Well-known names
 # should be published by posting to xml-sig@python.org, and are
 # subsequently recorded in this file.
@@ -60,6 +62,8 @@
 
     # User did not specify a name, try implementations in arbitrary
     # order, returning the one that has the required features
+    if isinstance(features, StringTypes):
+        features = _parse_feature_string(features)
     for creator in registered.values():
         dom = creator()
         if _good_enough(dom, features):
@@ -74,3 +78,22 @@
             return dom
 
     raise ImportError,"no suitable DOM implementation found"
+
+def _parse_feature_string(s):
+    features = []
+    parts = s.split()
+    i = 0
+    length = len(parts)
+    while i < length:
+        feature = parts[i]
+        if feature[0] in "0123456789":
+            raise ValueError, "bad feature name: " + `feature`
+        i = i + 1
+        version = None
+        if i < length:
+            v = parts[i]
+            if v[0] in "0123456789":
+                i = i + 1
+                version = v
+        features.append((feature, version))
+    return tuple(features)
