diff -urN Twisted-10.0.0.orig/twisted/spread/jelly.py Twisted-10.0.0/twisted/spread/jelly.py
--- Twisted-10.0.0.orig/twisted/spread/jelly.py	2010-05-11 13:55:28.235453000 +0200
+++ Twisted-10.0.0/twisted/spread/jelly.py	2010-05-11 15:43:44.205224000 +0200
@@ -154,9 +154,9 @@
 unjellyableRegistry = {}
 unjellyableFactoryRegistry = {}
 
+NO_STATE=object()
 
-
-def _newInstance(cls, state):
+def _newInstance(cls, state=NO_STATE):
     """
     Make a new instance of a class without calling its __init__ method.
     'state' will be used to update inst.__dict__ . Supports both new- and
@@ -165,9 +165,14 @@
     if not isinstance(cls, types.ClassType):
         # new-style
         inst = cls.__new__(cls)
-        inst.__dict__.update(state) # Copy 'instance' behaviour
+
+        if state is not NO_STATE:
+            inst.__dict__.update(state) # Copy 'instance' behaviour
     else:
-        inst = instance(cls, state)
+        if state is not NO_STATE:
+            inst = instance(cls, state)
+        else:   
+            inst = instance(cls)
     return inst
 
 
@@ -675,7 +680,7 @@
             if not self.taster.isClassAllowed(clz):
                 raise InsecureJelly("Class %s not allowed." % jelType)
             if hasattr(clz, "__setstate__"):
-                ret = _newInstance(clz, {})
+                ret = _newInstance(clz)
                 state = self.unjelly(obj[1])
                 ret.__setstate__(state)
             else:
