diff --git a/src/service/from_err.rs b/src/service/from_err.rs
index 613d6041..ef5619db 100644
--- a/src/service/from_err.rs
+++ b/src/service/from_err.rs
@@ -20,6 +20,19 @@ impl<A: Service, E: From<A::Error>> FromErr<A, E> {
     }
 }
 
+impl<A, E> Clone for FromErr<A, E>
+where
+    A: Service + Clone,
+    E: From<A::Error>,
+{
+    fn clone(&self) -> Self {
+        FromErr {
+            service: self.service.clone(),
+            f: PhantomData,
+        }
+    }
+}
+
 impl<A, E> Service for FromErr<A, E>
 where
     A: Service,