diff --git a/serde/src/ser/mod.rs b/serde/src/ser/mod.rs
index 603ebe0b..524c7514 100644
--- a/serde/src/ser/mod.rs
+++ b/serde/src/ser/mod.rs
@@ -577,12 +577,33 @@ pub trait Serializer: Sized {
/// Begin to serialize a tuple. This call must be followed by zero or more
/// calls to `serialize_element`, then a call to `end`.
///
- /// ```rust,ignore
- /// let mut tup = serializer.serialize_tuple(3)?;
- /// tup.serialize_element(&self.0)?;
- /// tup.serialize_element(&self.1)?;
- /// tup.serialize_element(&self.2)?;
- /// tup.end()
+ /// ```rust
+ /// use serde::{Serialize, Serializer};
+ /// use serde::ser::SerializeTuple;
+ ///
+ /// # mod fool {
+ /// # trait Serialize {}
+ /// impl Serialize for (A, B, C)
+ /// # {}
+ /// # }
+ /// #
+ /// # struct Tuple3(A, B, C);
+ /// #
+ /// # impl Serialize for Tuple3
+ /// where A: Serialize,
+ /// B: Serialize,
+ /// C: Serialize
+ /// {
+ /// fn serialize(&self, serializer: S) -> Result
+ /// where S: Serializer
+ /// {
+ /// let mut tup = serializer.serialize_tuple(3)?;
+ /// tup.serialize_element(&self.0)?;
+ /// tup.serialize_element(&self.1)?;
+ /// tup.serialize_element(&self.2)?;
+ /// tup.end()
+ /// }
+ /// }
/// ```
fn serialize_tuple(self, len: usize) -> Result;