diff --git a/clmctest/monitoring/LineProtocolGenerator.py b/clmctest/monitoring/LineProtocolGenerator.py
index 16fb13dc19c1fb84779e0722080b74f015e76549..692405ef04d261039d4c00d6cbf0367a4d286bf1 100644
--- a/clmctest/monitoring/LineProtocolGenerator.py
+++ b/clmctest/monitoring/LineProtocolGenerator.py
@@ -125,18 +125,18 @@ def _getNSTime(time):
 
 def generate_mc_service_config( mcMeasurement, stateTimeStats, time ):
 
-    stateTimeStats = validate_state_time_stats( stateTimeStats )
+    validStats = validate_state_time_stats( stateTimeStats )
 
     result = [{ "measurement" : mcMeasurement,
                 "fields" :
-                { "stopped"      : stateTimeStats['stopped'],
-                  "avg_stopped"  : stateTimeStats['avg_stopped'],
-                  "starting"     : stateTimeStats['starting'],
-                  "avg_starting" : stateTimeStats['avg_starting'],
-                  "running"      : stateTimeStats['running'],
-                  "avg_running"  : stateTimeStats['avg_running'],
-                  "stopping"     : stateTimeStats['stopping'],
-                  "avg_stopping" : stateTimeStats['avg_stopping']
+                { "stopped"      : validStats['stopped'],
+                  "avg_stopped"  : validStats['avg_stopped'],
+                  "starting"     : validStats['starting'],
+                  "avg_starting" : validStats['avg_starting'],
+                  "running"      : validStats['running'],
+                  "avg_running"  : validStats['avg_running'],
+                  "stopping"     : validStats['stopping'],
+                  "avg_stopping" : validStats['avg_stopping']
                 },
                 "time" : _getNSTime(time) }]
 
@@ -145,25 +145,28 @@ def generate_mc_service_config( mcMeasurement, stateTimeStats, time ):
 def validate_state_time_stats( stateTimeStats ):
 
     if ( not 'stopped' in stateTimeStats ):
-        stateTimeStats['stopped'] = 0
+        stateTimeStats['stopped'] = 0.0
 
     if ( not 'avg_stopped' in stateTimeStats ):
-        stateTimeStats['avg_stopped'] = 0
+        stateTimeStats['avg_stopped'] = 0.0
     
     if ( not 'starting' in stateTimeStats ):
-        stateTimeStats['starting'] = 0
+        stateTimeStats['starting'] = 0.0
 
     if ( not 'avg_starting' in stateTimeStats ):
-        stateTimeStats['avg_starting'] = 0
+        stateTimeStats['avg_starting'] = 0.0
 
     if ( not 'running' in stateTimeStats ):
-        stateTimeStats['running'] = 0
+        stateTimeStats['running'] = 0.0
+
+    if ( not 'avg_running' in stateTimeStats ):
+        stateTimeStats['avg_running'] = 0.0
 
     if ( not 'stopping' in stateTimeStats ):
-        stateTimeStats['stopping'] = 0
+        stateTimeStats['stopping'] = 0.0
 
     if ( not 'avg_stopping' in stateTimeStats ):
-        stateTimeStats['avg_stopping'] = 0
+        stateTimeStats['avg_stopping'] = 0.0
 
     return stateTimeStats
 
diff --git a/clmctest/monitoring/StreamingSim.py b/clmctest/monitoring/StreamingSim.py
index 5a995ccf40b4f6619de88750456c31651866d0d7..242fe83a5eace6e918702b09a80ba1d234cc3706 100644
--- a/clmctest/monitoring/StreamingSim.py
+++ b/clmctest/monitoring/StreamingSim.py
@@ -193,9 +193,29 @@ class Sim(object):
                 # remove requests processed off the queue
                 ip_endpoint['request_queue'] -= int(requests_processed)
 
-                # update media component state
-
+                # update media component state (continuously 'running')
+                state_stats = {}
+                state_stats['running'] = float(TICK_TIME)
+                state_stats['avg_running'] = float(TICK_TIME)
+                agent_db_client.write_points(lp.generate_mc_service_config("mpegdash_service_config",state_stats,sim_time))
+                
             sim_time += TICK_TIME
+
+        # Simulate tear-down of media components
+        # move mpegdash_service endpoints state through from 'running' to 'stopped'
+        max_delay = 0
+        for ip_endpoint in ip_endpoints:
+            agent_url       = urllib.parse.urlparse(ip_endpoint["agent_url"])
+            agent_db_client = InfluxDBClient(host=agent_url.hostname, port=agent_url.port, database=self.influx_db_name, timeout=10)
+            delay_avg       = mc_config_delay_dist['stopping'][0]
+            delay_std       = delay_avg * mc_config_delay_dist['stopping'][1]
+            
+            delay_time = self._changeMCState(agent_db_client, sim_time, "mpegdash_service_config", delay_avg, delay_std, 0.7, 'stopping', 'stopped')
+            max_delay  = max(delay_time, max_delay)
+
+        sim_time += max_delay
+
+        # End simulation
         end_time = sim_time
         print("Simulation Finished. Start time {0}. End time {1}. Total time {2}".format(start_time, end_time,
                                                                                          end_time - start_time))
@@ -267,7 +287,7 @@ class Sim(object):
         mc_states[next_state] = next_state_time
         mc_states["avg_" +next_state] = next_state_time
 
-        agent_db_client.write_points(lp.generate_mc_service_config(mc_measurement, mc_states, sim_time ))
+        agent_db_client.write_points(lp.generate_mc_service_config(mc_measurement, mc_states, sim_time))
 
         return total_delay_time
 
diff --git a/clmctest/monitoring/test_simresults.py b/clmctest/monitoring/test_simresults.py
index 7468594ff007cc6e20c88f36b130c44f9709261e..73d984a1a852ab988a782ce780b4b85d1993cfe6 100644
--- a/clmctest/monitoring/test_simresults.py
+++ b/clmctest/monitoring/test_simresults.py
@@ -21,9 +21,9 @@ class TestSimulation(object):
          {"time": "1970-01-01T00:00:00Z", "count_cpu": 12, "count_memory": 12, "count_storage": 12}),
          
         ('SELECT count(*) FROM "CLMCMetrics"."autogen"."mpegdash_service_config" WHERE ipendpoint=\'adaptive_streaming_I1_apache1\'',
-         {"time" : "1970-01-01T00:00:00Z", "count_avg_running" : 1, "count_avg_starting" : 1, "count_avg_stopped" : 1, "count_avg_stopping" : 1, "count_running" : 1, "count_starting" : 1, "count_stopped" : 1, "count_stopping" : 1}),
+         {"time" : "1970-01-01T00:00:00Z", "count_avg_running" : 3602, "count_avg_starting" : 3602, "count_avg_stopped" : 3602, "count_avg_stopping" : 3602, "count_running" : 3602, "count_starting" : 3602, "count_stopped" : 3602, "count_stopping" : 3602}),
         ('SELECT count(*) FROM "CLMCMetrics"."autogen"."mpegdash_service_config" WHERE ipendpoint=\'adaptive_streaming_I1_apache2\'',
-         {"time" : "1970-01-01T00:00:00Z", "count_avg_running" : 1, "count_avg_starting" : 1, "count_avg_stopped" : 1, "count_avg_stopping" : 1, "count_running" : 1, "count_starting" : 1, "count_stopped" : 1, "count_stopping" : 1}),
+         {"time" : "1970-01-01T00:00:00Z", "count_avg_running" : 3602, "count_avg_starting" : 3602, "count_avg_stopped" : 3602, "count_avg_stopping" : 3602, "count_running" : 3602, "count_starting" : 3602, "count_stopped" : 3602, "count_stopping" : 3602}),
     ])
     def test_simulation(self, query, expected_result, get_db_client, run_simulation_fixture):
         """