diff --git a/src/libcore/iter/iterator.rs b/src/libcore/iter/iterator.rs
index d9887094fefb..1685dba3c5a6 100644
--- a/src/libcore/iter/iterator.rs
+++ b/src/libcore/iter/iterator.rs
@@ -637,16 +637,15 @@ fn filter
(self, predicate: P) -> Filter where
/// let a = ["1", "2", "lol"];
///
/// let mut iter = a.iter()
- /// .map(|s| s.parse().ok())
- /// .filter(|s| s.is_some());
+ /// .map(|s| s.parse())
+ /// .filter(|s| s.is_ok())
+ /// .map(|s| s.unwrap());
///
- /// assert_eq!(iter.next(), Some(Some(1)));
- /// assert_eq!(iter.next(), Some(Some(2)));
+ /// assert_eq!(iter.next(), Some(1));
+ /// assert_eq!(iter.next(), Some(2));
/// assert_eq!(iter.next(), None);
/// ```
///
- /// There's an extra layer of [`Some`] in there.
- ///
/// [`Option`]: ../../std/option/enum.Option.html
/// [`Some`]: ../../std/option/enum.Option.html#variant.Some
/// [`None`]: ../../std/option/enum.Option.html#variant.None