diff --git a/tools/gn2bp/gen_android_bp b/tools/gn2bp/gen_android_bp
index f740771..3d3953b 100755
--- a/tools/gn2bp/gen_android_bp
+++ b/tools/gn2bp/gen_android_bp
@@ -209,7 +209,7 @@
     self.strip = dict()
     self.stl = None
     self.cppflags = set()
-    self.local_include_dirs = []
+    self.local_include_dirs = set()
     self.export_system_include_dirs = set()
 
   def to_string(self, output):
@@ -265,7 +265,7 @@
     self.defaults = set()
     self.cflags = set()
     self.include_dirs = set()
-    self.local_include_dirs = []
+    self.local_include_dirs = set()
     self.header_libs = set()
     self.required = set()
     self.tool_files = set()
@@ -327,7 +327,7 @@
     self._output_field(output, 'defaults')
     self._output_field(output, 'cflags')
     self._output_field(output, 'include_dirs')
-    self._output_field(output, 'local_include_dirs', sort=False)
+    self._output_field(output, 'local_include_dirs')
     self._output_field(output, 'header_libs')
     self._output_field(output, 'required')
     self._output_field(output, 'dist')
@@ -969,20 +969,18 @@
       module.cppflags.add('-fexceptions')
 
 def set_module_include_dirs(module, cflags, include_dirs):
-  local_include_dirs_set = set()
   for flag in cflags:
     if '-isystem' in flag:
-      local_include_dirs_set.add(flag[len('-isystem../../'):])
+      module.local_include_dirs.add(flag[len('-isystem../../'):])
 
   # Adding local_include_dirs is necessary due to source_sets / filegroups
   # which do not properly propagate include directories.
   # Filter any directory inside //out as a) this directory does not exist for
   # aosp / soong builds and b) the include directory should already be
   # configured via library dependency.
-  local_include_dirs_set.update([gn_utils.label_to_path(d)
+  module.local_include_dirs.update([gn_utils.label_to_path(d)
                                  for d in include_dirs
                                  if not re.match('^//out/.*', d)])
-  module.local_include_dirs = sorted(list(local_include_dirs_set))
 
 
 def create_modules_from_target(blueprint, gn, gn_target_name):
