diff --git a/src/emuvim/api/sonata/dummygatekeeper.py b/src/emuvim/api/sonata/dummygatekeeper.py
index 8a9416c..2a994bd 100755
--- a/src/emuvim/api/sonata/dummygatekeeper.py
+++ b/src/emuvim/api/sonata/dummygatekeeper.py
@@ -258,6 +258,18 @@
         LOG.info("Service started. Instance id: %r" % instance_uuid)
         return instance_uuid
 
+    def stop_service(self):
+        """
+        This method stops a running service instance.
+        It iterates over all VNFDs, stopping them each
+        and removing them from their data center.
+
+        :return:
+        """
+
+
+
+
     def _start_vnfd(self, vnfd):
         """
         Start a single VNFD of this service
@@ -296,6 +308,20 @@
             vnfi = target_dc.startCompute(self.vnf_name2docker_name[vnf_name], network=intfs, image=docker_name, flavor_name="small")
             return vnfi
 
+    def _stop_vnfd(self, vnf_name):
+        """
+        Stop a VNFD specified by its name.
+
+        :param vnf_name: Name of the vnf to be stopped
+        :return:
+        """
+        if vnf_name not in self.vnfds:
+            raise Exception("VNFD with name %s not found." % vnf_name)
+        vnfd = self.vnfds[vnf_name]
+        dc = vnfd.get("dc")
+        LOG.info("Stopping %r contained in %r in DC %r" % (vnf_name, self.vnf_name2docker_name[vnf_name], dc)
+        dc.stopCompute(self.vnf_name2docker_name[vnf_name])
+
     def _get_vnf_instance(self, instance_uuid, name):
         """
         Returns the Docker object for the given VNF name (or Docker name).
@@ -511,7 +537,7 @@
     """
     def place(self, nsd, vnfds, dcs):
         c = 0
-        dcs_list = list(dcs.itervalues()) 
+        dcs_list = list(dcs.itervalues())
         for name, vnfd in vnfds.iteritems():
             vnfd["dc"] = dcs_list[c % len(dcs_list)]
             c += 1  # inc. c to use next DC
@@ -602,6 +628,22 @@
         return {"service_instantiations_list": [
             list(s.instances.iterkeys()) for s in GK.services.itervalues()]}
 
+    def delete(self):
+        """
+        Stops a running service specified by its UUID.
+
+        :return:
+        """
+        # try to extract the service UUID from the request
+        json_data = request.get_json(force=True)
+        service_uuid = json_data.get("service_uuid")
+
+        if service_uuid in GK.services:
+            # valid service UUID, stop service
+            GK.services.get(service_uuid).stop_service()
+            return "", 0
+        return "Service not found", 404
+
 
 # create a single, global GK object
 GK = Gatekeeper()
