Fix by Sjoerd for a package related bug: If you have a non-empy
__init__.py it isn't read.  (Sjoerd just came up with this, so it's
not heavily tested.)

Other (yet unsolved) package problems noted by Sjoerd:

- If you have a package and a module inside that or another package
  with the same name, module caching doesn't work properly since the
  key is the base name of the module/package.
- The only entry that is returned when you readmodule a package is a
  __path__ whose value is a list which confuses certain class browsers
  that I wrote.  (Hm, this could be construed as a feature.)
diff --git a/Lib/pyclbr.py b/Lib/pyclbr.py
index 709a07b..3d5e0fa 100644
--- a/Lib/pyclbr.py
+++ b/Lib/pyclbr.py
@@ -123,6 +123,8 @@
 	module and return a dictionary with one entry for each class
 	found in the module.'''
 
+	dict = {}
+
 	i = string.rfind(module, '.')
 	if i >= 0:
 		# Dotted module name
@@ -137,7 +139,6 @@
 		return _modules[module]
 	if module in sys.builtin_module_names:
 		# this is a built-in module
-		dict = {}
 		_modules[module] = dict
 		return dict
 
@@ -153,18 +154,17 @@
 		fullpath = list(path) + sys.path
 		f, file, (suff, mode, type) = imp.find_module(module, fullpath)
 	if type == imp.PKG_DIRECTORY:
-		dict = {'__path__': [file]}
+		dict['__path__'] = [file]
 		_modules[module] = dict
-		# XXX Should we recursively look for submodules?
-		return dict
+		path = [file] + path
+		f, file, (suff, mode, type) = \
+				imp.find_module('__init__', [file])
 	if type != imp.PY_SOURCE:
 		# not Python source, can't do anything with this module
 		f.close()
-		dict = {}
 		_modules[module] = dict
 		return dict
 
-	dict = {}
 	_modules[module] = dict
 	imports = []
 	classstack = []	# stack of (class, indent) pairs