diff --git a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
index 91a76af..d6a540f 100644
--- a/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
+++ b/components/org.apache.stratos.cartridge.agent/src/main/java/org/apache/stratos/cartridge/agent/extensions/DefaultExtensionHandler.java
@@ -356,7 +356,7 @@ public void onMemberTerminatedEvent(MemberTerminatedEvent memberTerminatedEvent)
             return;
         }
         
-        Map<String, String> env = new HashMap<String, String>();
+        Map<String, String> env = memberTerminatedEvent.toEnv();
 
         ExtensionUtils.executeMemberTerminatedExtension(env);
     }
@@ -382,7 +382,7 @@ public void onMemberSuspendedEvent(MemberSuspendedEvent memberSuspendedEvent) {
             return;
         }
         
-        Map<String, String> env = new HashMap<String, String>();
+        Map<String, String> env = memberSuspendedEvent.toEnv();
 
         ExtensionUtils.executeMemberSuspendedExtension(env);
     }
@@ -408,7 +408,7 @@ public void onMemberStartedEvent(MemberStartedEvent memberStartedEvent) {
             return;
         }
         
-        Map<String, String> env = new HashMap<String, String>();
+        Map<String, String> env = memberStartedEvent.toEnv();
 
         ExtensionUtils.executeMemberStartedExtension(env);
     }
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberTerminatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberTerminatedEvent.java
index 3308347..e7c9b49 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberTerminatedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/MemberTerminatedEvent.java
@@ -20,6 +20,7 @@
 package org.apache.stratos.messaging.event.topology;
 
 import java.io.Serializable;
+import java.util.Map;
 import java.util.Properties;
 
 /**
@@ -88,4 +89,17 @@ public void setProperties(Properties properties) {
     public String getClusterInstanceId() {
         return clusterInstanceId;
     }
+
+    @Override
+    public Map<String, String> toEnv() {
+        Map<String, String> m = super.toEnv();
+        m.put("STRATOS_EVENT_SERVICE_NAME", serviceName);
+        m.put("STRATOS_EVENT_CLUSTER_ID", clusterId);
+        m.put("STRATOS_EVENT_MEMBER_ID", memberId);
+        m.put("STRATOS_EVENT_CLUSTER_INSTANCE_ID", clusterInstanceId);
+        m.put("STRATOS_EVENT_NETWORK_PARTITION_ID", networkPartitionId);
+        m.put("STRATOS_EVENT_PARTITION_ID", partitionId);
+        m.put("STRATOS_EVENT_GROUP_ID", groupId);
+        return m;
+    }
 }
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/TopologyEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/TopologyEvent.java
index 017387c..85f2bc8 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/TopologyEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/TopologyEvent.java
@@ -22,10 +22,23 @@
 import org.apache.stratos.messaging.event.Event;
 
 import java.io.Serializable;
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * Represents all topology events.
  */
 public abstract class TopologyEvent extends Event implements Serializable {
     private static final long serialVersionUID = -3279032168352271675L;
+
+    /**
+     * Turn event data into a Mapping of key->value pairs, suitable for
+     * injecting into the environment of subprocesses executing event hooks.
+     * Those event hooks need access to the event data to process the events.
+     * @return
+     */
+    public Map<String, String> toEnv()
+    {
+        return new HashMap<String, String>();
+    }
 }
