diff --git a/src/operation.py b/src/operation.py
index d8933aac432f70cb80489967e04bd1ca9990c0cb..e8df4a173d7bf80d65aad8cc9677ae10723173a8 100644
--- a/src/operation.py
+++ b/src/operation.py
@@ -184,6 +184,7 @@ class Operation(Executor):
 
                 if(calls!=[]):
                     for call in calls:
+                        #print(full_code, self.get_code(get_OG=True))
                         emitted = Emitted(name=full_code, origin=self.origin, emitted_by=call)
                         emitted.set_emits(name_emitted)
                         emitted.add_sink(self)
@@ -364,8 +365,16 @@ class Operation(Executor):
                     if(name_emitted==""):
                         self.add_origin_emits(full_code, name_called, "")
                     if(name_emitted in constant.LIST_OPERATORS):
-                        full_code = '.'.join(full_code.split(".")[:-1])
-                        self.add_origin_emits(full_code, name_called, "")
+                        pos = self.get_code().find(full_code)
+                        #This basically checks if the name_emitted is an operation or not
+                        if(pos+len(full_code)>=len(self.get_code())
+                           or self.get_code()[pos+len(full_code):].strip()[0] not in ["(", "{"]):
+                            #Case not an operation
+                            self.add_origin_emits(full_code, name_called, name_emitted)
+                        else:
+                            #Case Operation
+                            full_code = '.'.join(full_code.split(".")[:-1])
+                            self.add_origin_emits(full_code, name_called, "")
                     else:
                         self.add_origin_emits(full_code, name_called, name_emitted)
                     temp = operation