diff --git a/src/liballoc/str.rs b/src/liballoc/str.rs
index 6d153bf02b3ba..64e815b1fbaa5 100644
--- a/src/liballoc/str.rs
+++ b/src/liballoc/str.rs
@@ -2113,9 +2113,9 @@ impl str {
                     (buf.as_mut_ptr() as *mut u8).add(buf.len()),
                     rem_len,
                 );
-                // `buf.len() + rem_len` equals to `buf.capacity()` (`self.len() * n`).
-                let buf_len = buf.len();
-                buf.set_len(buf_len + rem_len);
+                // `buf.len() + rem_len` equals to `buf.capacity()` (`= self.len() * n`).
+                let buf_cap = buf.capacity();
+                buf.set_len(buf_cap);
             }
         }