Make functionality more closely the same as what's implemented by default.
diff --git a/Lib/knee.py b/Lib/knee.py
index 47f65cb..f88d78f 100644
--- a/Lib/knee.py
+++ b/Lib/knee.py
@@ -63,13 +63,22 @@
 	    raise ImportError, "No module named " + mname
     return m
 
-def ensure_fromlist(m, fromlist):
+def ensure_fromlist(m, fromlist, recursive=0):
     for sub in fromlist:
+	if sub == "*":
+	    if not recursive:
+		try:
+		    all = m.__all__
+		except AttributeError:
+		    pass
+		else:
+		    ensure_fromlist(m, all, 1)
+	    continue
 	if sub != "*" and not hasattr(m, sub):
 	    subname = "%s.%s" % (m.__name__, sub)
 	    submod = import_module(sub, subname, m)
-## 	    if not submod:
-## 		raise ImportError, "No module named " + subname
+	    if not submod:
+		raise ImportError, "No module named " + subname
 
 def import_module(partname, fqname, parent):
     try:
@@ -108,8 +117,3 @@
 # Now install our hooks
 __builtin__.__import__ = import_hook
 __builtin__.reload = reload_hook
-
-# pretend we're ni, too
-sys.modules['ni'] = sys.modules[__name__]
-def ni(): pass
-def install(): pass