diff --git a/include/class.user.php b/include/class.user.php
index 8d5b6836859e2aa0531bdbd659f1c680bb61c8ea..1dd4736b2740c2ecdbed95b228bef50d02f637b0 100644
--- a/include/class.user.php
+++ b/include/class.user.php
@@ -207,7 +207,9 @@ implements TemplateVariable {
         $user = static::lookupByEmail($vars['email']);
         if (!$user && $create) {
             $name = $vars['name'];
-            if (!$name)
+            if (is_array($name))
+                $name = implode(', ', $name);
+            elseif (!$name)
                 list($name) = explode('@', $vars['email'], 2);
 
             $user = User::create(array(
@@ -503,7 +505,10 @@ implements TemplateVariable {
         foreach ($forms as $entry) {
             if (($f=$entry->getDynamicForm()) && $f->get('type') == 'U') {
                 if (($name = $f->getField('name'))) {
-                    $this->name = $name->getClean();
+                    $name = $name->getClean();
+                    if (is_array($name))
+                        $name = implode(', ', $name);
+                    $this->name = $name;
                 }
 
                 if (($email = $f->getField('email'))) {