Index: turbogears-1.0.9/turbogears/widgets/base.py
===================================================================
--- turbogears-1.0.9.orig/turbogears/widgets/base.py	2009-12-11 09:19:26.059043488 -0400
+++ turbogears-1.0.9/turbogears/widgets/base.py	2009-12-11 09:19:28.445559008 -0400
@@ -187,17 +187,12 @@
             if param in params:
                 # make sure we don't keep references to mutables
                 setattr(self, param, copy_if_mutable(params.pop(param)))
-
             else:
-                if hasattr(self, param):
-                    # make sure we don't alter mutable class attributes
-                    value = copy_if_mutable(getattr(self.__class__, param),
-                                            True)
-                    if value[1]:
-                        # re-set it only if mutable
-                        setattr(self, param, value[0])
-                else:
-                    setattr(self, param, None)
+                # make sure we don't alter mutable class attributes
+                value = copy_if_mutable(getattr(self.__class__, param), True)
+                if value[1]:
+                    # re-set it only if mutable
+                    setattr(self, param, value[0])
 
         for unused in params.iterkeys():
             warnings.warn('keyword argument "%s" is unused at %r instance' % (
Index: turbogears-1.0.9/turbogears/widgets/meta.py
===================================================================
--- turbogears-1.0.9.orig/turbogears/widgets/meta.py	2009-12-11 09:19:26.136269607 -0400
+++ turbogears-1.0.9/turbogears/widgets/meta.py	2009-12-11 09:19:28.446062791 -0400
@@ -59,7 +59,13 @@
                 dct[param] = ParamDescriptor(param)
             except KeyError:
                 # declared in a superclass, skip it...
-                pass
+                if [base for base in bases if hasattr(base, param)]:
+                    continue
+
+                # not declared anywhere and because set it
+                # by default to None
+                dct[param_prefix+param] = None
+                dct[param] = ParamDescriptor(param)
         params = list(params)
         dct['params'] = params
         #XXX: Remove when deprecation is effective

