diff --git a/modules/external-api/src/main/java/org/opencastproject/external/endpoint/EventsEndpoint.java b/modules/external-api/src/main/java/org/opencastproject/external/endpoint/EventsEndpoint.java
index 137cd8315b8d21e7c0a11898a456a86cbcff323f..b5e89c830df1600885f184fe8db839fb8029d9a4 100644
--- a/modules/external-api/src/main/java/org/opencastproject/external/endpoint/EventsEndpoint.java
+++ b/modules/external-api/src/main/java/org/opencastproject/external/endpoint/EventsEndpoint.java
@@ -54,7 +54,6 @@ import org.opencastproject.external.util.AclUtils;
 import org.opencastproject.external.util.ExternalMetadataUtils;
 import org.opencastproject.index.service.api.IndexService;
 import org.opencastproject.index.service.catalog.adapter.DublinCoreMetadataUtil;
-import org.opencastproject.index.service.catalog.adapter.events.CommonEventCatalogUIAdapter;
 import org.opencastproject.index.service.exception.IndexServiceException;
 import org.opencastproject.index.service.impl.util.EventHttpServletRequest;
 import org.opencastproject.index.service.impl.util.EventUtils;
@@ -218,7 +217,6 @@ public class EventsEndpoint implements ManagedService {
   private IndexService indexService;
   private IngestService ingestService;
   private SecurityService securityService;
-  private CommonEventCatalogUIAdapter eventCatalogUIAdapter;
   private final List<EventCatalogUIAdapter> catalogUIAdapters = new ArrayList<>();
   private UrlSigningService urlSigningService;
   private SchedulerService schedulerService;
@@ -261,11 +259,6 @@ public class EventsEndpoint implements ManagedService {
     this.schedulerService = schedulerService;
   }
 
-  /** OSGi DI. */
-  public void setCommonEventCatalogUIAdapter(CommonEventCatalogUIAdapter eventCatalogUIAdapter) {
-    this.eventCatalogUIAdapter = eventCatalogUIAdapter;
-  }
-
   /** OSGi DI. */
   public void addCatalogUIAdapter(EventCatalogUIAdapter catalogUIAdapter) {
     catalogUIAdapters.add(catalogUIAdapter);
@@ -1309,7 +1302,8 @@ public class EventsEndpoint implements ManagedService {
   protected Opt<MetadataList> getEventMetadata(Event event) throws IndexServiceException, Exception {
     MetadataList metadataList = new MetadataList();
     List<EventCatalogUIAdapter> catalogUIAdapters = getEventCatalogUIAdapters();
-    catalogUIAdapters.remove(this.eventCatalogUIAdapter);
+    EventCatalogUIAdapter eventCatalogUIAdapter = indexService.getCommonEventCatalogUIAdapter();
+    catalogUIAdapters.remove(eventCatalogUIAdapter);
     MediaPackage mediaPackage = indexService.getEventMediapackage(event);
     if (catalogUIAdapters.size() > 0) {
       for (EventCatalogUIAdapter catalogUIAdapter : catalogUIAdapters) {
@@ -1346,6 +1340,7 @@ public class EventsEndpoint implements ManagedService {
                 String.format("Unable to parse type '%s' as a flavor so unable to find the matching catalog.", type));
       }
       // Try the main catalog first as we load it from the index.
+      EventCatalogUIAdapter eventCatalogUIAdapter = indexService.getCommonEventCatalogUIAdapter();
       if (flavor.get().equals(eventCatalogUIAdapter.getFlavor())) {
         DublinCoreMetadataCollection collection = EventUtils.getEventMetadata(event, eventCatalogUIAdapter);
         ExternalMetadataUtils.changeSubjectToSubjects(collection);
@@ -1412,6 +1407,7 @@ public class EventsEndpoint implements ManagedService {
     for (final Event event : indexService.getEvent(id, elasticsearchIndex)) {
       MetadataList metadataList = new MetadataList();
       // Try the main catalog first as we load it from the index.
+      EventCatalogUIAdapter eventCatalogUIAdapter = indexService.getCommonEventCatalogUIAdapter();
       if (flavor.get().equals(eventCatalogUIAdapter.getFlavor())) {
         collection = EventUtils.getEventMetadata(event, eventCatalogUIAdapter);
         adapter = eventCatalogUIAdapter;
@@ -1541,6 +1537,7 @@ public class EventsEndpoint implements ManagedService {
         return R.badRequest(
                 String.format("Unable to parse type '%s' as a flavor so unable to find the matching catalog.", type));
       }
+      EventCatalogUIAdapter eventCatalogUIAdapter = indexService.getCommonEventCatalogUIAdapter();
       if (flavor.get().equals(eventCatalogUIAdapter.getFlavor())) {
         return Response
                 .status(Status.FORBIDDEN).entity(String
diff --git a/modules/external-api/src/main/resources/OSGI-INF/external-events-endpoint.xml b/modules/external-api/src/main/resources/OSGI-INF/external-events-endpoint.xml
index 787c16b38c8c8aa2bf62123ef028fd29a3007efe..31ee98e9e31ed47d720c154bde8fc9403ee2157a 100644
--- a/modules/external-api/src/main/resources/OSGI-INF/external-events-endpoint.xml
+++ b/modules/external-api/src/main/resources/OSGI-INF/external-events-endpoint.xml
@@ -11,11 +11,6 @@
     <provide interface="org.opencastproject.external.endpoint.EventsEndpoint"/>
     <provide interface="org.osgi.service.cm.ManagedService"/>
   </service>
-  <reference name="CommonEventCatalogUIAdapter"
-             interface="org.opencastproject.index.service.catalog.adapter.events.CommonEventCatalogUIAdapter"
-             cardinality="1..1"
-             policy="static"
-             bind="setCommonEventCatalogUIAdapter"/>
   <reference name="EventCatalogUIAdapter"
              interface="org.opencastproject.metadata.dublincore.EventCatalogUIAdapter"
              cardinality="0..n"
diff --git a/modules/external-api/src/test/java/org/opencastproject/external/endpoint/TestEventsEndpoint.java b/modules/external-api/src/test/java/org/opencastproject/external/endpoint/TestEventsEndpoint.java
index f5854dde2bda39ce239da38dd2832377df172c15..dec47a5a4b8e148367c01e271584525f1bd4905a 100644
--- a/modules/external-api/src/test/java/org/opencastproject/external/endpoint/TestEventsEndpoint.java
+++ b/modules/external-api/src/test/java/org/opencastproject/external/endpoint/TestEventsEndpoint.java
@@ -38,7 +38,6 @@ import org.opencastproject.mediapackage.MediaPackage;
 import org.opencastproject.mediapackage.MediaPackageElementFlavor;
 import org.opencastproject.mediapackage.Publication;
 import org.opencastproject.mediapackage.PublicationImpl;
-import org.opencastproject.metadata.dublincore.DublinCoreMetadataCollection;
 import org.opencastproject.metadata.dublincore.EventCatalogUIAdapter;
 import org.opencastproject.metadata.dublincore.MetadataList;
 import org.opencastproject.scheduler.api.SchedulerService;
@@ -56,7 +55,6 @@ import com.entwinemedia.fn.data.Opt;
 
 import org.easymock.Capture;
 import org.easymock.EasyMock;
-import org.osgi.service.cm.ConfigurationException;
 
 import java.net.URI;
 import java.time.Instant;
@@ -107,35 +105,37 @@ public class TestEventsEndpoint extends EventsEndpoint {
     setSecurityService(securityService);
   }
 
-  private void setupEventCatalogUIAdapters() throws ConfigurationException {
-    // Setup common event catalog
+  public TestEventsEndpoint() throws Exception {
+    this.endpointBaseUrl = "https://api.opencast.org";
+
+    ElasticsearchIndex elasticsearchIndex = new ElasticsearchIndex();
+
+    IndexService indexService = EasyMock.createMock(IndexService.class);
+    EasyMock.expect(indexService.getEvent(MISSING_ID, elasticsearchIndex)).andReturn(Opt.<Event> none()).anyTimes();
+
+    SchedulerService schedulerService = EasyMock.createMock(SchedulerService.class);
+
+    /**
+     * Setup CommonEventCatalog
+     */
     CommonEventCatalogUIAdapter commonEventCatalogUIAdapter = new CommonEventCatalogUIAdapter();
     Properties episodeCatalogProperties = getCatalogProperties(getClass(), "/episode-catalog.properties");
     commonEventCatalogUIAdapter.updated(PropertiesUtil.toDictionary(episodeCatalogProperties));
-    this.setCommonEventCatalogUIAdapter(commonEventCatalogUIAdapter);
     addCatalogUIAdapter(commonEventCatalogUIAdapter);
+    EasyMock.expect(indexService.getCommonEventCatalogUIAdapter())
+        .andReturn(commonEventCatalogUIAdapter).anyTimes();
 
-    // Setup catalog to be deleted.
+    /**
+     * Setup catalog to be deleted.
+     */
     EventCatalogUIAdapter deleteAdapter = EasyMock.createMock(EventCatalogUIAdapter.class);
     EasyMock.expect(deleteAdapter.getFlavor()).andReturn(new MediaPackageElementFlavor(DELETE_CATALOG_TYPE, "episode"))
-            .anyTimes();
-    DublinCoreMetadataCollection collectionMock = EasyMock.createNiceMock(DublinCoreMetadataCollection.class);
+        .anyTimes();
     EasyMock.expect(deleteAdapter.getOrganization()).andReturn(defaultOrg.getId()).anyTimes();
     EasyMock.expect(deleteAdapter.getFields(EasyMock.anyObject(MediaPackage.class))).andReturn(null).anyTimes();
     EasyMock.expect(deleteAdapter.getUITitle()).andReturn(null).anyTimes();
     EasyMock.replay(deleteAdapter);
     addCatalogUIAdapter(deleteAdapter);
-  }
-
-  public TestEventsEndpoint() throws Exception {
-    this.endpointBaseUrl = "https://api.opencast.org";
-
-    ElasticsearchIndex elasticsearchIndex = new ElasticsearchIndex();
-
-    IndexService indexService = EasyMock.createMock(IndexService.class);
-    EasyMock.expect(indexService.getEvent(MISSING_ID, elasticsearchIndex)).andReturn(Opt.<Event> none()).anyTimes();
-
-    SchedulerService schedulerService = EasyMock.createMock(SchedulerService.class);
 
     /**
      * Delete Metadata external service mocking
@@ -276,7 +276,6 @@ public class TestEventsEndpoint extends EventsEndpoint {
     setIndexService(indexService);
     setSchedulerService(schedulerService);
     setupSecurityService();
-    setupEventCatalogUIAdapters();
     Properties properties = new Properties();
     properties.load(getClass().getResourceAsStream("/events-endpoint.properties"));
     updated((Hashtable) properties);
diff --git a/modules/index-service/src/main/java/org/opencastproject/index/service/catalog/adapter/CatalogUIAdapterFactory.java b/modules/index-service/src/main/java/org/opencastproject/index/service/catalog/adapter/CatalogUIAdapterFactory.java
index c4b1c05cdde883fd86e95f763a1681c2f14156fa..05acad4cfd0165372d1356f1b494f89c74269722 100644
--- a/modules/index-service/src/main/java/org/opencastproject/index/service/catalog/adapter/CatalogUIAdapterFactory.java
+++ b/modules/index-service/src/main/java/org/opencastproject/index/service/catalog/adapter/CatalogUIAdapterFactory.java
@@ -124,10 +124,6 @@ public class CatalogUIAdapterFactory implements ManagedServiceFactory {
           ConfigurableEventDCCatalogUIAdapter adapter;
           String[] adapterClassesNames;
           if (isCommonMetadata) {
-            if (bundleContext.getServiceReference(CommonEventCatalogUIAdapter.class.getName()) != null)
-              throw new ConfigurationException(CONF_COMMON_METADATA_KEY, format(
-                      "Only one common metadata catalog adapter is allowed for the type '%s'", CATALOG_TYPE_EVENTS));
-
             adapter = new CommonEventCatalogUIAdapter();
             adapterClassesNames = new String[] { CommonEventCatalogUIAdapter.class.getName(),
                     EventCatalogUIAdapter.class.getName() };
@@ -156,10 +152,6 @@ public class CatalogUIAdapterFactory implements ManagedServiceFactory {
           ConfigurableSeriesDCCatalogUIAdapter adapter;
           String[] adapterClassesNames;
           if (isCommonMetadata) {
-            if (bundleContext.getServiceReference(CommonSeriesCatalogUIAdapter.class.getName()) != null)
-              throw new ConfigurationException(CONF_COMMON_METADATA_KEY, format(
-                      "Only one common metadata catalog adapter is allowed for the type '%s'", CATALOG_TYPE_SERIES));
-
             adapter = new CommonSeriesCatalogUIAdapter();
             adapterClassesNames = new String[] { CommonSeriesCatalogUIAdapter.class.getName(),
                     SeriesCatalogUIAdapter.class.getName() };
diff --git a/modules/index-service/src/main/java/org/opencastproject/index/service/impl/IndexServiceImpl.java b/modules/index-service/src/main/java/org/opencastproject/index/service/impl/IndexServiceImpl.java
index 163c5eb5eaae6c16df938c8cf2574d03e26038d6..1b3e452c0110fdbef2e5c0719f36a93cac564a2e 100644
--- a/modules/index-service/src/main/java/org/opencastproject/index/service/impl/IndexServiceImpl.java
+++ b/modules/index-service/src/main/java/org/opencastproject/index/service/impl/IndexServiceImpl.java
@@ -420,7 +420,7 @@ public class IndexServiceImpl implements IndexService {
 
     if (orgEventCatalogUIAdapter.isPresent()) {
       return orgEventCatalogUIAdapter.get();
-    } else if (organization != DEFAULT_ORGANIZATION_ID) {
+    } else if (!organization.equals(DEFAULT_ORGANIZATION_ID)) {
       return getCommonEventCatalogUIAdapter(DEFAULT_ORGANIZATION_ID);
     } else {
        throw new IllegalStateException("Common event metadata for " + DEFAULT_ORGANIZATION_ID + " needs to be "
@@ -436,7 +436,7 @@ public class IndexServiceImpl implements IndexService {
 
     if (orgSeriesCatalogUIAdapter.isPresent()) {
       return orgSeriesCatalogUIAdapter.get();
-    } else if (organization != DEFAULT_ORGANIZATION_ID) {
+    } else if (!organization.equals(DEFAULT_ORGANIZATION_ID)) {
       return getCommonSeriesCatalogUIAdapter(DEFAULT_ORGANIZATION_ID);
     } else {
       throw new IllegalStateException("Common series metadata for " + DEFAULT_ORGANIZATION_ID + " needs to be "