Index: sage/server/notebook/avatars.py
===================================================================
--- sage/server/notebook/avatars.py	(revision 5056)
+++ sage/server/notebook/avatars.py	(revision 5063)
@@ -74,4 +74,6 @@
         if username in usernames:
             raise ValueError('Username %s already exists' % username)
+        elif username == 'pub':
+            raise ValueError('"pub" is not an allowed user name')
         else:
             return True
Index: sage/server/notebook/twist.py
===================================================================
--- sage/server/notebook/twist.py	(revision 5061)
+++ sage/server/notebook/twist.py	(revision 5063)
@@ -770,6 +770,21 @@
         if request.args.has_key('email'):
             if request.args['email'][0] is not None:
-                username = request.args['username'][0]
-                passwd  = request.args['password'][0]
+
+                s = ''
+                try:
+                    username = request.args['username'][0]
+                except KeyError:
+                    s += "You must specify a username."
+                try:
+                    passwd  = request.args['password'][0]
+                except KeyError:
+                    s += "  You must specify a password."
+                else:
+                    if len(passwd) == 0:
+                        s = "  Password must be nonempty."
+                if s:
+                    return http.Response(stream=s)
+
+                
                 destaddr = """%s""" % request.args['email'][0]
                 from sage.server.notebook.smtpsend import send_mail
