diff --git a/force_bdss/core_mco_driver.py b/force_bdss/core_mco_driver.py
index fb940f70c9a1fd227c8374d732be0ef25e1138e7..c0ff9fa016664685d4607612a4425129f764b084 100644
--- a/force_bdss/core_mco_driver.py
+++ b/force_bdss/core_mco_driver.py
@@ -66,12 +66,11 @@ class CoreMCODriver(BaseCoreDriver):
         try:
             optimizer = mco_factory.create_optimizer()
         except Exception:
-            factory_id = mco_factory.id,
-            plugin_id = mco_factory.plugin.id
             log.exception("Unable to instantiate optimizer for mco '{}' in "
                           "plugin '{}'. An exception was raised. "
                           "This might indicate a programming error in the "
-                          "plugin.".format(factory_id, plugin_id))
+                          "plugin.".format(mco_factory.id,
+                                           mco_factory.plugin.id))
             raise
 
         return optimizer
diff --git a/force_bdss/tests/test_core_mco_driver.py b/force_bdss/tests/test_core_mco_driver.py
index 0c8fcbf7570371566a0a8ef29b1ddddd911a5c01..bce737c018746ab34a438dfad821f9b8400f83d8 100644
--- a/force_bdss/tests/test_core_mco_driver.py
+++ b/force_bdss/tests/test_core_mco_driver.py
@@ -135,3 +135,44 @@ class TestCoreMCODriver(unittest.TestCase):
                  "'force.bdss.enthought.plugin.test.v0"
                  ".factory.probe_notification_listener' in plugin "
                  "'force.bdss.enthought.plugin.test.v0'."))
+
+    def test_listener_creation_error(self):
+        driver = CoreMCODriver(
+            application=self.mock_application,
+        )
+        registry = self.factory_registry_plugin
+        nl_factory = registry.notification_listener_factories[0]
+        nl_factory.raises_on_create_listener = True
+
+        with LogCapture() as capture:
+            with self.assertRaises(Exception):
+                driver.listeners
+            capture.check(('force_bdss.core_mco_driver',
+                           'ERROR',
+                           'Failed to create listener with id '
+                           "'force.bdss.enthought.plugin.test.v0"
+                           ".factory.probe_notification_listener' "
+                           "in plugin 'force.bdss.enthought.plugin"
+                           ".test.v0'. This may indicate a "
+                           'programming error in the plugin.'),)
+
+    def test_create_optimizer_error(self):
+        driver = CoreMCODriver(
+            application=self.mock_application,
+        )
+        registry = self.factory_registry_plugin
+        mco_factory = registry.mco_factories[0]
+        mco_factory.raises_on_create_optimizer = True
+
+        with LogCapture() as capture:
+            with self.assertRaises(Exception):
+                driver.mco
+            capture.check(('force_bdss.core_mco_driver',
+                           'ERROR',
+                           'Unable to instantiate optimizer for mco '
+                           "'force.bdss.enthought.plugin.test.v0"
+                           ".factory.probe_mco' in plugin "
+                           "'force.bdss.enthought.plugin.test.v0'. "
+                           "An exception was raised. This might "
+                           'indicate a programming error in the plugin.'),)
+