diff --git a/views.py b/views.py
index 90078f2d141c0348e71535140d865b9abf1419cc_dmlld3MucHk=..2bdc798ec9cfefe3c0ee68207a184431309ce682_dmlld3MucHk= 100644
--- a/views.py
+++ b/views.py
@@ -231,9 +231,8 @@
         rset = req.execute(rql, {'x': eid}, 'x')
         if rset.rowcount:
             self.w(u'<h4>%s</h4>%s' % (req._('Comment_plural'), reply))
-            # XXX check registration is open. Also, propose to login.
-            #if self.vreg.config['anonymous-user'] == self.req.user.login:
-            #    self.w(u' (<a href="/?vid=register">register to comment</a>)')
+            self._login_register_link()
+
             self.w(u'<div id="comment%sHolder"></div>' % eid)
             self.w(u'<ul class="comment">')
             for i in xrange(rset.rowcount):
@@ -241,10 +240,8 @@
             self.w(u'</ul>')
         elif reply:
             self.w(reply)
-            # XXX check registration is open. Also, propose to login.
-            #if self.vreg.config['anonymous-user'] == self.req.user.login:
-            #    self.w(u' (<a href="/?vid=register">register to comment</a>)')
+            self._login_register_link()
             self.w(u'<div id="comment%sHolder"></div>' % eid)
         self.w(u'</div>')
 
 
@@ -247,7 +244,13 @@
             self.w(u'<div id="comment%sHolder"></div>' % eid)
         self.w(u'</div>')
 
 
+    def _login_register_link(self):
+        if self.req.cnx.anonymous_connection:
+            if 'registration' in self.vreg.config.cubes():
+                self.w(u' <a href="/register">%s</a> or' % self.req._(u'register'))
+            self.w(u' <a href="/login">%s</a> %s' % (self.req._(u'login'), self.req._(u'to comment')))
+
 # comment actions #############################################################
 
 class ReplyCommentAction(LinkToEntityAction):