diff --git a/src/emuvim/api/openstack/compute.py b/src/emuvim/api/openstack/compute.py
index 175145d..42f0064 100755
--- a/src/emuvim/api/openstack/compute.py
+++ b/src/emuvim/api/openstack/compute.py
@@ -34,6 +34,7 @@
 import uuid
 import time
 import ip_handler as IP
+import hashlib
 
 
 LOG = logging.getLogger("api.openstack.compute")
@@ -561,25 +562,12 @@
         Docker does not like too long instance names.
         This function provides a shorter name if needed
         """
-        # fix for NetSoft'17 demo
-        # TODO remove this after the demo
-        #if "http" in name or "apache" in name:
-        #    return "http"
-        #elif "l4fw" in name or "socat" in name:
-        #    return "l4fw"
-        #elif "proxy" in name or "squid" in name:
-        #    return "proxy"
-        # this is a ugly fix, but we cannot do better for now (interface names are to long)
         if len(name) > char_limit:
             LOG.info("Long server name: {}".format(name))
             # construct a short name
-         #   name = name.strip("-_ .")
-         #   name = name.replace("_vnf", "")
-         #   p = name.split("_")
-         #   if len(p) > 0:
-         #       name = p[len(p)-1]
-            name = name[-char_limit:].strip("-_ .")
-            LOG.info("Short server name: {}".format(name))
+            h = hashlib.sha224(name).hexdigest()
+            h = h[0:char_limit]
+            LOG.info("Short server name: {}".format(h))
         return name
 
 
diff --git a/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py b/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py
index 5029417..550f8e7 100755
--- a/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py
+++ b/src/emuvim/api/openstack/openstack_dummies/nova_dummy_api.py
@@ -223,7 +223,7 @@
         try:
             server_dict = json.loads(request.data)['server']
             networks = server_dict.get('networks', None)
-            name = str(self.api.compute.dc.label) + "_man_" + server_dict["name"][0:12]
+            name = str(self.api.compute.dc.label) + "_" + server_dict["name"]
 
             if self.api.compute.find_server_by_name_or_id(name) is not None:
                 return Response("Server with name %s already exists." % name, status=409)
@@ -231,7 +231,7 @@
             resp = dict()
 
             server = self.api.compute.create_server(name)
-            server.full_name = str(self.api.compute.dc.label) + "_man_" + server_dict["name"]
+            server.full_name = str(self.api.compute.dc.label) + "_" + server_dict["name"]
             server.template_name = server_dict["name"]
             if "metadata" in server_dict:
                 server.properties = server_dict["metadata"]
