A value was used after it was mutably borrowed. Erroneous code example: ```compile_fail,E0503 fn main() { let mut value = 3; // Create a mutable borrow of `value`. let borrow = &mut value; let _sum = value + 1; // error: cannot use `value` because // it was mutably borrowed println!("{}", borrow); } ``` In this example, `value` is mutably borrowed by `borrow` and cannot be used to calculate `sum`. This is not possible because this would violate Rust's mutability rules. You can fix this error by finishing using the borrow before the next use of the value: ``` fn main() { let mut value = 3; let borrow = &mut value; println!("{}", borrow); // The block has ended and with it the borrow. // You can now use `value` again. let _sum = value + 1; } ``` Or by cloning `value` before borrowing it: ``` fn main() { let mut value = 3; // We clone `value`, creating a copy. let value_cloned = value.clone(); // The mutable borrow is a reference to `value` and // not to `value_cloned`... let borrow = &mut value; // ... which means we can still use `value_cloned`, let _sum = value_cloned + 1; // even though the borrow only ends here. println!("{}", borrow); } ``` For more information on Rust's ownership system, take a look at the [References & Borrowing][references-and-borrowing] section of the Book. [references-and-borrowing]: https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html