diff --git a/Milter/__init__.py b/Milter/__init__.py
index 54b23cc2f96bf299a254263df62179052ee5be2e..482dc231a3ab930de8c4d17e4ff89aa874824995 100755
--- a/Milter/__init__.py
+++ b/Milter/__init__.py
@@ -15,6 +15,7 @@ import milter
 import thread
 
 from milter import *
+from functools import wraps
 
 _seq_lock = thread.allocate_lock()
 _seq = 0
@@ -157,6 +158,7 @@ def noreply(func):
   except KeyError:
     raise ValueError(
       '@noreply applied to non-optional method: '+func.__name__)
+  @wraps(func)
   def wrapper(self,*args):
     rc = func(self,*args)
     if self._protocol & nr_mask: