diff --git a/include/class.forms.php b/include/class.forms.php
index bbca68a9ccd74fe065285cec9f9f779cdbb1dd20..c71452f571a1c6e78c696149941a23c7f911a5e9 100644
--- a/include/class.forms.php
+++ b/include/class.forms.php
@@ -3715,8 +3715,8 @@ class FreeTextField extends FormField {
 class FreeTextWidget extends Widget {
     function render($options=array()) {
         $config = $this->field->getConfiguration();
-        $class = $config['classes'] ?: 'thread-body'
-        ?><div class="<?php echo $class; ?>" style="padding:0"><?php
+        $class = $config['classes'] ?: 'thread-body bleed';
+        ?><div class="<?php echo $class; ?>"><?php
         if ($label = $this->field->getLocal('label')) { ?>
             <h3><?php
             echo Format::htmlchars($label);
diff --git a/include/class.staff.php b/include/class.staff.php
index c1ed5a32fdd50d538896b9b03401e5c3d09e2380..b5d742bac71d659df99225bd96ec8e082fc95b48 100644
--- a/include/class.staff.php
+++ b/include/class.staff.php
@@ -1387,8 +1387,8 @@ extends AbstractForm {
 
     function getClean() {
         $clean = parent::getClean();
-        list($clean['username'],) = preg_split('/[^\w.-]/', $clean['email'], 2);
-        if (Staff::lookup($clean['username']))
+        list($clean['username'],) = preg_split('/[^\w.-]/u', $clean['email'], 2);
+        if (mb_strlen($clean['username']) < 3 || Staff::lookup($clean['username']))
             $clean['username'] = mb_strtolower($clean['firstname']);
         $clean['perms'] = array(
             User::PERM_CREATE,