diff --git a/pw_env_setup/py/pw_env_setup/cipd_setup/update.py b/pw_env_setup/py/pw_env_setup/cipd_setup/update.py
index 73140a4..5659130 100755
--- a/pw_env_setup/py/pw_env_setup/cipd_setup/update.py
+++ b/pw_env_setup/py/pw_env_setup/cipd_setup/update.py
@@ -21,6 +21,7 @@
 
 from __future__ import print_function
 
+import collections
 import hashlib
 import json
 import os
@@ -191,9 +192,8 @@
     return result
 
 
-def write_ensure_file(package_files, ensure_file, platform):  # pylint: disable=redefined-outer-name
+def all_packages(package_files):
     packages = []
-
     for package_file in package_files:
         name = package_file_name(package_file)
         with open(package_file, 'r') as ins:
@@ -204,13 +204,28 @@
                 else:
                     package['subdir'] = name
             packages.extend(file_packages)
+    return packages
+
+
+def deduplicate_packages(packages):
+    deduped = collections.OrderedDict()
+    for package in reversed(packages):
+        if package['path'] in deduped:
+            del deduped[package['path']]
+        deduped[package['path']] = package
+    return reversed(list(deduped.values()))
+
+
+def write_ensure_file(package_files, ensure_file, platform):  # pylint: disable=redefined-outer-name
+    packages = all_packages(package_files)
+    deduped_packages = deduplicate_packages(packages)
 
     with open(ensure_file, 'w') as outs:
         outs.write('$VerifiedPlatform linux-amd64\n'
                    '$VerifiedPlatform mac-amd64\n'
                    '$ParanoidMode CheckPresence\n')
 
-        for pkg in packages:
+        for pkg in deduped_packages:
             # If this is a new-style package manifest platform handling must
             # be done here instead of by the cipd executable.
             if 'platforms' in pkg and platform not in pkg['platforms']:
