|  | @@ -322,15 +322,20 @@ class MagicModule(ModuleType):
 | 
	
		
			
				|  |  |      def __dir__(self):
 | 
	
		
			
				|  |  |          return list(set(self.__all__) | DEFAULT_ATTRS)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +    def __reduce__(self):
 | 
	
		
			
				|  |  | +        return import_module, (self.__name__, )
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  def create_module(name, attrs, cls_attrs=None, pkg=None,
 | 
	
		
			
				|  |  |                    base=MagicModule, prepare_attr=None):
 | 
	
		
			
				|  |  |      fqdn = '.'.join([pkg.__name__, name]) if pkg else name
 | 
	
		
			
				|  |  |      cls_attrs = {} if cls_attrs is None else cls_attrs
 | 
	
		
			
				|  |  | +    pkg, _, modname = name.rpartition('.')
 | 
	
		
			
				|  |  | +    cls_attrs['__module__'] = pkg
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      attrs = dict((attr_name, prepare_attr(attr) if prepare_attr else attr)
 | 
	
		
			
				|  |  |                   for attr_name, attr in items(attrs))
 | 
	
		
			
				|  |  | -    module = sys.modules[fqdn] = type(name, (base, ), cls_attrs)(fqdn)
 | 
	
		
			
				|  |  | +    module = sys.modules[fqdn] = type(modname, (base, ), cls_attrs)(fqdn)
 | 
	
		
			
				|  |  |      module.__dict__.update(attrs)
 | 
	
		
			
				|  |  |      return module
 | 
	
		
			
				|  |  |  
 |