diff --git a/src/raw.rs b/src/raw.rs
index 5421d56591b1c500a536ba32f6709f025530b233..0dbfb569e2f6cdf8ec75c1cee83138f6cd9b8b0f 100644
--- a/src/raw.rs
+++ b/src/raw.rs
@@ -101,6 +101,20 @@ impl<W: Write> IntoRawMode for W {
     }
 }
 
+impl<W: Write> RawTerminal<W> {
+    pub fn suspend_raw_mode(&self) -> io::Result<()> {
+        set_terminal_attr(&self.prev_ios)?;
+        Ok(())
+    }
+
+    pub fn activate_raw_mode(&self) -> io::Result<()> {
+        let mut ios = get_terminal_attr()?;
+        raw_terminal_attr(&mut ios);
+        set_terminal_attr(&ios)?;
+        Ok(())
+    }
+}
+
 #[cfg(test)]
 mod test {
     use super::*;