diff --git a/apply_MBEDTLS_PRIVATE.py b/apply_MBEDTLS_PRIVATE.py
index 4d87384..d2bc7c0 100644
--- a/apply_MBEDTLS_PRIVATE.py
+++ b/apply_MBEDTLS_PRIVATE.py
@@ -74,24 +74,33 @@
 pp = pprint.PrettyPrinter(indent=4)
 pp.pprint(files_to_visit)
 
+mbedtls_private_access_include = "#include \"mbedtls/private_access.h\""
+
 for file_path, variables in files_to_visit.items():
+  # check if this file has "mbedtls/private_access.h" include
+  file_has_private_access_include = False
+  with open(file_path, 'r') as file:
+    for line in file:
+      if mbedtls_private_access_include in line:
+        file_has_private_access_include = True
+        break
+
   # FileInput redirects stdout to to 'file', so every print in this block will be put inside 'file'
   with fileinput.FileInput(file_path, inplace=True) as file:
     output_line_number = 1
     # compile regex matching the header's include guard.
     re_include_guard = re.compile(r"^#define.*{name}$".format(name=os.path.basename(file_path).replace('.','_').upper()))
     for line in file:
-      insert_allow_private_include = False
+      insert_private_access_include = False
       if re_include_guard.match(line):
-        insert_allow_private_include = True
+        insert_private_access_include = not file_has_private_access_include
       # every line in file is checked against variables and lines in which they occur
       for variable, var_lines in variables.items():
         for var_line in var_lines:
           # wrap variable with MBEDTLS_PRIVATE(...) macro
           if output_line_number == var_line:
-            line = re.sub(r"(^.*?\W+)({var})(\W+.*$)".format(var=variable), r"\1MBEDTLS_PRIVATE(\2)\3", line)
+            line = re.sub(r"(^.*?\W+)((?!MBEDTLS_PRIVATE\(){var})(\W+.*$)".format(var=variable), r"\1MBEDTLS_PRIVATE(\2)\3", line)
       output_line_number += 1
       print(line, end='') # fileinput redirects stdout to the target file
-      if insert_allow_private_include:
-        insert_allow_private_include = False
+      if insert_private_access_include:
         print("#include \"mbedtls/private_access.h\"")
