diff --git a/sumpy/kernel.py b/sumpy/kernel.py
index 12255a93f6d686c003f8f99f16f2f43db22ba037..768ad1a34ca6c9c8ce056ea499ed3e76e21a905a 100644
--- a/sumpy/kernel.py
+++ b/sumpy/kernel.py
@@ -149,8 +149,7 @@ class Kernel(object):
     def __setstate__(self, state):
         # Can't use trivial pickling: hash_value cache must stay unset
         assert len(self.init_arg_names) == len(state)
-        for name, value in zip(self.init_arg_names, state):
-            setattr(self, name, value)
+        self.__init__(*state)
 
     # }}}