--- a/pyforge/pyforge/controllers/discuss.py
+++ b/pyforge/pyforge/controllers/discuss.py
@@ -66,7 +66,7 @@
     @expose()
     @validate(pass_validator, error_handler=index)
     def subscribe(self, **kw):
-        kw = self.W.subscription_form.validate(kw)
+        kw = self.W.subscription_form.validate(kw, None)
         threads = kw.pop('threads')
         for t in threads:
             thread = t['_id']
@@ -89,10 +89,6 @@
 
     def __init__(self, discussion_controller):
         self._discussion_controller = discussion_controller
-
-    @LazyProperty
-    def discussion(self):
-        return self._discussion_controller.discussion
 
     def _lookup(self, id, *remainder):
         return self.ThreadController(self._discussion_controller, id), remainder
@@ -140,18 +136,6 @@
         self.thread.num_replies += 1
         redirect(request.referer)
 
-    @h.vardec
-    @expose()
-    @validate(pass_validator, error_handler=index)
-    def moderate(self, **kw):
-        require(has_artifact_access('moderate', self.thread))
-        kw = self.W.moderate_thread.validate(kw, None)
-        if kw.pop('delete', None):
-            url = self.thread.discussion.url()
-            self.thread.delete()
-            redirect(url)
-        redirect(request.referer)
-
 class PostController(object):
     __metaclass__=h.ProxiedAttrMeta
     M=h.attrproxy('_discussion_controller', 'M')
@@ -184,7 +168,10 @@
             require(has_artifact_access('moderate', self.post))
             post_fields = self.W.edit_post.validate(kw, None)
             for k,v in post_fields.iteritems():
-                setattr(self.post, k, v)
+                try:
+                    setattr(self.post, k, v)
+                except AttributeError:
+                    continue
             redirect(request.referer)
         elif request.method=='GET':
             if version is not None:
@@ -347,7 +334,6 @@
             query['status'] = status
         if flag:
             query['flags'] = {'$gte': int(flag) }
-        print query
         q = self.M.Post.query.find(query)
         count = q.count()
         offset = int(offset)
@@ -361,8 +347,8 @@
                     status=status, flag=flag,
                     pgnum=pgnum, pages=pages)
 
-    @expose()
-    @h.vardec
+    @h.vardec
+    @expose()
     def moderate(self, post=None,
                  approve=None,
                  spam=None,