diff --git a/Milter/__init__.py b/Milter/__init__.py
index f0406da9bf6d92887de0e515b159113c8dd617a7..6ec5bdc278b2735132dda10721050088878e3524 100755
--- a/Milter/__init__.py
+++ b/Milter/__init__.py
@@ -46,7 +46,7 @@ def nocallback(func):
 
 def noreply(func):
   try:
-    nr_mask = func.milter_protocol = OPTIONAL_CALLBACKS[func.__name__][0]
+    nr_mask = OPTIONAL_CALLBACKS[func.__name__][0]
   except KeyErro:
     raise ValueError(
       '@noreply applied to non-optional method: '+func.__name__)
@@ -54,6 +54,7 @@ def noreply(func):
     rc = func(self,*args)
     if self._protocol & nr_mask: return NOREPLY
     return rc
+  wrapper.milter_protocol = nr_mask
   return wrapper
 
 class DisabledAction(RuntimeError):