diff --git a/bundles/org.eclipse.e4.core.contexts/META-INF/MANIFEST.MF b/bundles/org.eclipse.e4.core.contexts/META-INF/MANIFEST.MF
index 65f1a0a..6796dce 100644
--- a/bundles/org.eclipse.e4.core.contexts/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.e4.core.contexts/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.e4.core.contexts
-Bundle-Version: 1.5.0.qualifier
+Bundle-Version: 1.6.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -9,7 +9,8 @@
 Require-Bundle: org.eclipse.e4.core.di
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: javax.inject;version="1.0.0",
- org.osgi.framework;version="1.5.0";resolution:=optional
-Export-Package: org.eclipse.e4.core.contexts,
+ org.osgi.framework;version="1.5.0";resolution:=optional,
+ org.osgi.service.event;version="1.3.0"
+Export-Package: org.eclipse.e4.core.contexts;version="1.6.0",
  org.eclipse.e4.core.internal.contexts;x-friends:="org.eclipse.e4.core.tests",
  org.eclipse.e4.core.internal.contexts.osgi;x-internal:=true
diff --git a/bundles/org.eclipse.e4.core.contexts/pom.xml b/bundles/org.eclipse.e4.core.contexts/pom.xml
index c7d507c..159f758 100644
--- a/bundles/org.eclipse.e4.core.contexts/pom.xml
+++ b/bundles/org.eclipse.e4.core.contexts/pom.xml
@@ -19,6 +19,6 @@
   </parent>
   <groupId>org.eclipse.e4</groupId>
   <artifactId>org.eclipse.e4.core.contexts</artifactId>
-  <version>1.5.0-SNAPSHOT</version>
+  <version>1.6.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/contexts/IEclipseContext.java b/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/contexts/IEclipseContext.java
index 434658b..a2dae65 100644
--- a/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/contexts/IEclipseContext.java
+++ b/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/contexts/IEclipseContext.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009, 2013 IBM Corporation and others.
+ * Copyright (c) 2009, 2017 IBM Corporation and others.
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -45,10 +45,21 @@
 public interface IEclipseContext {
 
 	/**
-	 * Returns whether this context or a parent has a value stored for the given name.
-	 * @param name the name being queried
-	 * @return <code>true</code> if this context has a value for the given name, and
-	 *         <code>false</code> otherwise.
+	 * Topic for sending an event via EventAdmin to inform about the disposal of
+	 * an IEclipseContext.
+	 *
+	 * @since 1.6
+	 */
+	public static final String TOPIC_DISPOSE = "org/eclipse/e4/core/contexts/IEclipseContext/DISPOSE"; //$NON-NLS-1$
+
+	/**
+	 * Returns whether this context or a parent has a value stored for the given
+	 * name.
+	 *
+	 * @param name
+	 *            the name being queried
+	 * @return <code>true</code> if this context has a value for the given name,
+	 *         and <code>false</code> otherwise.
 	 */
 	public boolean containsKey(String name);
 
diff --git a/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/internal/contexts/EclipseContext.java b/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/internal/contexts/EclipseContext.java
index ba11dcb..2addd36 100644
--- a/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/internal/contexts/EclipseContext.java
+++ b/bundles/org.eclipse.e4.core.contexts/src/org/eclipse/e4/core/internal/contexts/EclipseContext.java
@@ -30,6 +30,8 @@
 import org.eclipse.e4.core.contexts.RunAndTrack;
 import org.eclipse.e4.core.di.IInjector;
 import org.eclipse.e4.core.internal.contexts.osgi.ContextDebugHelper;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventAdmin;
 
 /**
  * This implementation assumes that all contexts are of the class EclipseContext. The external
@@ -202,8 +204,18 @@
 
 		if (parent != null) {
 			parent.removeChild(this);
-			if (rootContext != null)
+			if (rootContext != null) {
 				rootContext.cleanup();
+			}
+
+			// inform the OSGi layer via EventAdmin about the context disposal
+			// used for example to be able to cleanup cached requestors in
+			// ExtendedObjectSupplier implementations
+			EventAdmin admin = parent.get(EventAdmin.class);
+			if (admin != null) {
+				Event osgiEvent = new Event(IEclipseContext.TOPIC_DISPOSE, (Map<String, ?>) null);
+				admin.postEvent(osgiEvent);
+			}
 		}
 
 		if (debugAddOn != null)
