diff --git a/maud/Cargo.toml b/maud/Cargo.toml
index ab40265..7feca8f 100644
--- a/maud/Cargo.toml
+++ b/maud/Cargo.toml
@@ -17,6 +17,7 @@ maud_htmlescape = { version = "0.17.0", path = "../maud_htmlescape" }
 maud_macros = { version = "0.17.5", path = "../maud_macros" }
 iron = { version = ">= 0.5.1, < 0.7.0", optional = true }
 rocket = { version = "0.3", optional = true }
+actix-web = { version = "0.6.12", optional = true }
 
 [dev-dependencies]
 maud_lints = { version = "0.17.0", path = "../maud_lints" }
diff --git a/maud/src/lib.rs b/maud/src/lib.rs
index 0a245ab..8dc7410 100644
--- a/maud/src/lib.rs
+++ b/maud/src/lib.rs
@@ -10,6 +10,7 @@
 
 #![doc(html_root_url = "https://docs.rs/maud/0.17.5")]
 
+#[cfg(feature = "actix-web")] extern crate actix_web;
 #[cfg(feature = "iron")] extern crate iron;
 #[cfg(feature = "rocket")] extern crate rocket;
 
@@ -189,3 +190,17 @@ mod rocket_support {
         }
     }
 }
+
+#[cfg(feature = "actix-web")]
+mod actix_support {
+    use PreEscaped;
+    use actix_web::{Responder, HttpResponse, HttpRequest, Error};
+
+    impl Responder for PreEscaped<String> {
+        type Item = HttpResponse;
+        type Error = Error;
+        fn respond_to<String>(self, _req: &HttpRequest<String>) -> Result<Self::Item, Self::Error> {
+            Ok(HttpResponse::Ok().body(self.0))
+        }
+    }
+}