Method executed by a computer for automatically merging changes applied to a first modified program code of a program code and to a second modified program code of the program code, both modified program codes (101, 102) being electronically coded and comprising one or more items, the items being items of a specific programming language; the method comprising the steps of determining from each of the program code, the first modified program code and the second modified program code a respective data structure (231, 221, 211) by programming language dependent parsing of the program code, the first modified program code and the second modified program code, thereby obtaining a syntax information of the program code and the first and second modified program code (101, 102); determining a first data structure difference between the data structure of the program code and the data structure of the first modified program code by comparing items X i in the data structure of the program code with items Y j in the data structure of the first modified program code and identifying items Y m ' for which no equivalent in the data structure of the program code can be identified, the first data structure difference comprising the items Y m '; determining a second data structure difference between the data structure of the program code and the data structure of the second modified program code by comparing items X i in the data structure of the program code with items Z j in the data structure of the second modified program code and identifying items Z k ' for which no equivalent in the data structure of the program code can be identified, the second data structure difference comprising the items Z k '; identifying, by programming language dependent comparing the first data structure difference with the second data structure difference, modified items A i in the first modified program code that result in conflicts with modified items B j in the second modified program code generating, from the data structure differences and, a merged difference data structure by merging the first data structure difference and the second data structure difference and excluding, from the merged difference data structure, the modified items A i; wherein generating the merged difference data structure comprises identifying cyclic moves as conflicts that arise from at least two move operations that move items in the original program code to another position in the first and second modified program codes (101, 102), wherein, if both changes were included in the final program code, a cycle would be created through which the final program code would run over and over again and/or wherein generating the merged difference data structure comprises identifying name related conflicts by evaluating the syntax of the original program code and the first and second modified program codes, wherein two items C y and C z having the same name but being placed in different scopes are considered to not cause a conflict and two items having the same name and are placed in the same scope are considered to cause a conflict; generating a pseudo program code from the merged difference data structure; generating a final program code by including at least one of the items Y m ' and/or Z k ' in the program code, by applying the pseudo code to the program code.