diff --git a/satella/coding/typecheck.py b/satella/coding/typecheck.py
index dbeb287937a7fe95599a2dcf4b64fbb0da757979..a0f134e30f0514d813a72b7af9b5224d2fe25e74 100644
--- a/satella/coding/typecheck.py
+++ b/satella/coding/typecheck.py
@@ -278,10 +278,12 @@ def typed(*t_args, **t_kwargs):
         @functools.wraps(fun)
         def inner(*args, **kwargs):
 
-            if inspect.ismethod(fun):   # instancemethod or classmethod
-                cargs = args[1:]
-            else:
+            try:
+                fun.im_class
+            except AttributeError:
                 cargs = args
+            else:
+                cargs = args[1:]
 
             for argument, typedescr in zip(cargs, t_args):
                 if typedescr is not None: