diff options
-rw-r--r-- | poezio/plugin_manager.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/poezio/plugin_manager.py b/poezio/plugin_manager.py index c44a8ecc..874d0dc9 100644 --- a/poezio/plugin_manager.py +++ b/poezio/plugin_manager.py @@ -158,13 +158,14 @@ class PluginManager: if name in self.plugins: try: - self.plugins[name]._unloading = True # Prevents loops - for rdep in self.rdeps[name].copy(): - if rdep in self.plugins and not self.plugins[rdep]._unloading: - self.unload(rdep) - if rdep in self.plugins: - log.debug('Failed to unload reverse dependency %s first.', rdep) - return None + if self.plugins[name] is not None: + self.plugins[name]._unloading = True # Prevents loops + for rdep in self.rdeps[name].copy(): + if rdep in self.plugins and not self.plugins[rdep]._unloading: + self.unload(rdep) + if rdep in self.plugins: + log.debug('Failed to unload reverse dependency %s first.', rdep) + return None for command in self.commands[name].keys(): del self.core.commands[command] |