diff --git a/src/writer/msl/namer.cc b/src/writer/msl/namer.cc
index 578917a..43d9806 100644
--- a/src/writer/msl/namer.cc
+++ b/src/writer/msl/namer.cc
@@ -267,7 +267,7 @@
 Namer::~Namer() = default;
 
 std::string Namer::NameFor(const std::string& name) {
-  // If it's in the name make we can just return it. There are no shadow names
+  // If it's in the name map we can just return it. There are no shadow names
   // in WGSL so this has to be unique in the WGSL names, and we've already
   // checked the name collisions with MSL.
   auto it = name_map_.find(name);
@@ -288,6 +288,19 @@
       }
       i++;
     }
+    remapped_names_.insert(ret_name);
+  } else {
+    uint32_t i = 0;
+    // Make sure the ident name wasn't assigned by a remapping.
+    while (true) {
+      auto remap_it = remapped_names_.find(ret_name);
+      if (remap_it == remapped_names_.end()) {
+        break;
+      }
+      ret_name = name + "_" + std::to_string(i);
+      i++;
+    }
+    remapped_names_.insert(ret_name);
   }
 
   name_map_[name] = ret_name;
diff --git a/src/writer/msl/namer.h b/src/writer/msl/namer.h
index be75849..887e5be 100644
--- a/src/writer/msl/namer.h
+++ b/src/writer/msl/namer.h
@@ -17,6 +17,7 @@
 
 #include <string>
 #include <unordered_map>
+#include <unordered_set>
 
 namespace tint {
 namespace writer {
@@ -37,6 +38,8 @@
  private:
   /// Map of original name to new name. The two names may be the same.
   std::unordered_map<std::string, std::string> name_map_;
+  // The list of names taken by the remapper
+  std::unordered_set<std::string> remapped_names_;
 };
 
 }  // namespace msl
diff --git a/src/writer/msl/namer_test.cc b/src/writer/msl/namer_test.cc
index 3348595..3c30fa0 100644
--- a/src/writer/msl/namer_test.cc
+++ b/src/writer/msl/namer_test.cc
@@ -28,13 +28,21 @@
   EXPECT_EQ("my_name", n.NameFor("my_name"));
 }
 
-TEST_F(MslNamerTest, HandlesConflictWithRenamedReservedWord) {
+TEST_F(MslNamerTest, HandlesConflictWithRenamedReservedWordAfterIdentSeen) {
   Namer n;
   EXPECT_EQ("float_tint_0", n.NameFor("float_tint_0"));
   EXPECT_EQ("float_tint_1", n.NameFor("float"));
   EXPECT_EQ("float_tint_0", n.NameFor("float_tint_0"));
 }
 
+TEST_F(MslNamerTest, HandlesConflictWithRenamedReservedWordBeforeIdentSeen) {
+  Namer n;
+  EXPECT_EQ("float_tint_0", n.NameFor("float"));
+  EXPECT_EQ("float_tint_0_0", n.NameFor("float_tint_0"));
+  EXPECT_EQ("float_tint_0_0_0", n.NameFor("float_tint_0_0"));
+  EXPECT_EQ("float_tint_0_0", n.NameFor("float_tint_0"));
+}
+
 using MslReservedNameTest = testing::TestWithParam<std::string>;
 TEST_P(MslReservedNameTest, Emit) {
   auto name = GetParam();
