diff --git a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py
index eaa21352527a95591829e6bad87de8ecef1df521..07d389122b6a4ee1ba5e82677066a0bfb7b7d42c 100644
--- a/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py
+++ b/src/nbi/service/rest_server/nbi_plugins/tfs_api/Resources.py
@@ -301,16 +301,20 @@ class Link(_Resource):
     def put(self, link_uuid : str):
         link_json = request.get_json()
         link = grpc_link(link_json)
-        virtual_types = {LinkTypeEnum.LINKTYPE_VIRTUAL_COPPER, LinkTypeEnum.LINKTYPE_VIRTUAL_OPTICAL}
         if link_uuid != link.link_id.link_uuid.uuid:
             raise BadRequest('Mismatching link_uuid')
-        elif link.link_type in virtual_types:
-            link = grpc_link(link_json)
-            return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(link))    
-        return format_grpc_to_json(self.context_client.SetLink(grpc_link(link)))
+        if link.link_type == LinkTypeEnum.LINKTYPE_VIRTUAL:
+            return format_grpc_to_json(self.vntmanager_client.SetVirtualLink(link))
+        else:
+            return format_grpc_to_json(self.context_client.SetLink(link))
 
     def delete(self, link_uuid : str):
-        return format_grpc_to_json(self.context_client.RemoveLink(grpc_link_id(link_uuid)))
+        link_id = grpc_link_id(link_uuid)
+        link = self.context_client.GetLink(link_id)
+        if link.link_type == LinkTypeEnum.LINKTYPE_VIRTUAL:
+            return format_grpc_to_json(self.vntmanager_client.RemoveVirtualLink(link_id))
+        else:
+            return format_grpc_to_json(self.context_client.RemoveLink(link_id))
 
 class ConnectionIds(_Resource):
     def get(self, context_uuid : str, service_uuid : str):