diff --git a/module/VuFind/src/VuFind/Search/Solr/AbstractErrorListener.php b/module/VuFind/src/VuFind/Search/Solr/AbstractErrorListener.php
index 5ee81b7691ce9cf6a274cb7084a49039dea166ec..43561a87e097a4160c47f7da436849fb6bfa63b5 100644
--- a/module/VuFind/src/VuFind/Search/Solr/AbstractErrorListener.php
+++ b/module/VuFind/src/VuFind/Search/Solr/AbstractErrorListener.php
@@ -33,6 +33,8 @@ use VuFindSearch\Backend\BackendInterface;
 
 use Zend\EventManager\EventInterface;
 
+use SplObjectStorage;
+
 /**
  * Abstract base class of SOLR error listeners.
  *
@@ -56,7 +58,7 @@ abstract class AbstractErrorListener
     /**
      * Backends to listen for.
      *
-     * @var array
+     * @var SplObjectStorage
      */
     protected $backends;
 
@@ -67,41 +69,34 @@ abstract class AbstractErrorListener
      *
      * @return void
      */
-    public function __construct($backend)
+    public function __construct(BackendInterface $backend)
     {
-        $this->backends = array();
+        $this->backends = new SplObjectStorage();
         $this->addBackend($backend);
     }
 
     /**
      * Add backend to listen for.
      *
-     * @param BackendInterface|string $backend Backend instance or name of backend
+     * @param BackendInterface $backend Backend instance
      *
      * @return void
      */
-    public function addBackend($backend)
+    public function addBackend(BackendInterface $backend)
     {
-        if ($backend instanceOf BackendInterface) {
-            $this->backends[] = $backend->getName();
-        } else {
-            $this->backends[] = $backend;
-        }
+        $this->backends->attach($backend);
     }
 
     /**
      * Return true if listeners listens for backend errors.
      *
-     * @param BackendInterface|string $backend Backend instance or name of backend
+     * @param BackendInterface $backend Backend instance
      *
      * @return boolean
      */
-    public function listenForBackend($backend)
+    public function listenForBackend(BackendInterface $backend)
     {
-        if ($backend instanceOf BackendInterface) {
-            $backend = $backend->getName();
-        }
-        return in_array($backend, $this->backends);
+        return $this->backends->contains($backend);
     }
 
     /**
diff --git a/module/VuFind/src/VuFind/Search/Solr/V3/ErrorListener.php b/module/VuFind/src/VuFind/Search/Solr/V3/ErrorListener.php
index f42bb6cb2c94f1d1f3623412ed4e7b083c3bcfe5..5133f75b27ee3b276e0f37d03fa9d99929b5eff5 100644
--- a/module/VuFind/src/VuFind/Search/Solr/V3/ErrorListener.php
+++ b/module/VuFind/src/VuFind/Search/Solr/V3/ErrorListener.php
@@ -55,7 +55,7 @@ class ErrorListener extends AbstractErrorListener
      */
     public function onSearchError(EventInterface $event)
     {
-        $backend = $event->getParam('backend');
+        $backend = $event->getParam('backend_instance');
         if ($this->listenForBackend($backend)) {
             $error  = $event->getTarget();
             if ($error instanceOf HttpErrorException) {
diff --git a/module/VuFind/src/VuFind/Search/Solr/V4/ErrorListener.php b/module/VuFind/src/VuFind/Search/Solr/V4/ErrorListener.php
index 8458a439b177341f3a7abbc1db3ebfa71d2fab96..af6fa05ce86d30b9fa4041bf006845a198c9ffb7 100644
--- a/module/VuFind/src/VuFind/Search/Solr/V4/ErrorListener.php
+++ b/module/VuFind/src/VuFind/Search/Solr/V4/ErrorListener.php
@@ -65,7 +65,7 @@ class ErrorListener extends AbstractErrorListener
      */
     public function onSearchError(EventInterface $event)
     {
-        $backend = $event->getParam('backend');
+        $backend = $event->getParam('backend_instance');
         if ($this->listenForBackend($backend)) {
             $error = $event->getTarget();
             if ($error instanceOf HttpErrorException) {
diff --git a/module/VuFind/tests/unit-tests/src/Search/Solr/V3/ErrorListenerTest.php b/module/VuFind/tests/unit-tests/src/Search/Solr/V3/ErrorListenerTest.php
index 708fe31e593fcce624f1767f501df99b1045feef..50dcb9e10d9391093fa016a4fb58cca28df37bf0 100644
--- a/module/VuFind/tests/unit-tests/src/Search/Solr/V3/ErrorListenerTest.php
+++ b/module/VuFind/tests/unit-tests/src/Search/Solr/V3/ErrorListenerTest.php
@@ -58,12 +58,13 @@ class ErrorListenerTest extends TestCase
      */
     public function testDetectParseError()
     {
-        $response  = $this->createResponse('solr3-parse-error');
+        $response = $this->createResponse('solr3-parse-error');
+        $backend  = $this->getMockForAbstractClass('VuFindSearch\Backend\BackendInterface');
 
         $exception = HttpErrorException::createFromResponse($response);
-        $params    = array('backend' => 'test');
+        $params    = array('backend_instance' => $backend);
         $event     = new Event(null, $exception, $params);
-        $listener  = new ErrorListener('test');
+        $listener  = new ErrorListener($backend);
         $listener->onSearchError($event);
         $this->assertTrue($exception->hasTag('VuFind\Search\ParserError'));
     }
@@ -76,11 +77,12 @@ class ErrorListenerTest extends TestCase
     public function testDetectUndefinedFieldError()
     {
         $response = $this->createResponse('solr3-undefined-field-error');
+        $backend  = $this->getMockForAbstractClass('VuFindSearch\Backend\BackendInterface');
 
         $exception = HttpErrorException::createFromResponse($response);
-        $params    = array('backend' => 'test');
+        $params    = array('backend_instance' => $backend);
         $event     = new Event(null, $exception, $params);
-        $listener  = new ErrorListener('test');
+        $listener  = new ErrorListener($backend);
         $listener->onSearchError($event);
         $this->assertTrue($exception->hasTag('VuFind\Search\ParserError'));
     }
diff --git a/module/VuFind/tests/unit-tests/src/Search/Solr/V4/ErrorListenerTest.php b/module/VuFind/tests/unit-tests/src/Search/Solr/V4/ErrorListenerTest.php
index 84d51543757b09ec24409a7bef69171e0d3421df..a4b3e8a7813efaa232b6dc255c0abf90ba6fccf8 100644
--- a/module/VuFind/tests/unit-tests/src/Search/Solr/V4/ErrorListenerTest.php
+++ b/module/VuFind/tests/unit-tests/src/Search/Solr/V4/ErrorListenerTest.php
@@ -59,11 +59,12 @@ class ErrorListenerTest extends TestCase
     public function testDetectParseError()
     {
         $response  = $this->createResponse('solr4-parse-error');
+        $backend   = $this->getMockForAbstractClass('VuFindSearch\Backend\BackendInterface');
 
         $exception = HttpErrorException::createFromResponse($response);
-        $params    = array('backend' => 'test');
+        $params    = array('backend_instance' => $backend);
         $event     = new Event(null, $exception, $params);
-        $listener  = new ErrorListener('test');
+        $listener  = new ErrorListener($backend);
         $listener->onSearchError($event);
         $this->assertTrue($exception->hasTag('VuFind\Search\ParserError'));
     }
@@ -76,11 +77,12 @@ class ErrorListenerTest extends TestCase
     public function testDetectUndefinedFieldError()
     {
         $response = $this->createResponse('solr4-undefined-field-error');
+        $backend  = $this->getMockForAbstractClass('VuFindSearch\Backend\BackendInterface');
 
         $exception = HttpErrorException::createFromResponse($response);
-        $params    = array('backend' => 'test');
+        $params    = array('backend_instance' => $backend);
         $event     = new Event(null, $exception, $params);
-        $listener  = new ErrorListener('test');
+        $listener  = new ErrorListener($backend);
         $listener->onSearchError($event);
         $this->assertTrue($exception->hasTag('VuFind\Search\ParserError'));
     }