diff --git a/settings/ajax/creategroup.php b/settings/ajax/creategroup.php
index 0a79527c219f70131e97dfaa8654165338c322a0..bd878dc1c0a6ca967368d47f537733661c9a9d0b 100644
--- a/settings/ajax/creategroup.php
+++ b/settings/ajax/creategroup.php
@@ -7,7 +7,7 @@ $groupname = $_POST["groupname"];
 
 // Does the group exist?
 if( in_array( $groupname, OC_Group::getGroups())) {
-	OC_JSON::error(array("data" => array( "message" => $l->t("Group already exists") )));
+	OC_JSON::error(array("data" => array( "message" => 'Group already exists' )));
 	exit();
 }
 
@@ -16,5 +16,5 @@ if( OC_Group::createGroup( $groupname )) {
 	OC_JSON::success(array("data" => array( "groupname" => $groupname )));
 }
 else{
-	OC_JSON::error(array("data" => array( "message" => $l->t("Unable to add group") )));
+	OC_JSON::error(array("data" => array( "message" => 'Unable to add group' )));
 }
diff --git a/settings/js/users.js b/settings/js/users.js
index eef3c23727707711959587245091dbefc0f5d001..7b06d961b1a192f371647a7b13143b9aee05e00e 100644
--- a/settings/js/users.js
+++ b/settings/js/users.js
@@ -530,6 +530,47 @@ $(document).ready(function () {
 			}
 		);
 	});
+	$('#newgroup').submit(function (event) {
+		event.preventDefault();
+		var groupname = $('#newgroupname').val();
+		if ($.trim(groupname) === '') {
+			OC.dialogs.alert(
+				t('settings', 'A valid groupname must be provided'),
+				t('settings', 'Error creating group'));
+			return false;
+		}
+		$.post(
+			OC.filePath('settings', 'ajax', 'creategroup.php'),
+			{
+				groupname : groupname
+			},
+			function (result) {
+				if (result.status !== 'success') {
+					OC.dialogs.alert(result.data.message,
+						t('settings', 'Error creating group'));
+				} else {
+					if (result.data.groupname) {
+						var addedGroups = result.data.groupname;
+						UserList.availableGroups = $.unique($.merge(UserList.availableGroups, addedGroups));
+					}
+					if (result.data.homeExists){
+						OC.Notification.hide();
+						OC.Notification.show(t('settings', 'Warning: Home directory for user "{group}" already exists', {group: result.data.groupname}));
+						if (UserList.notificationTimeout){
+							window.clearTimeout(UserList.notificationTimeout);
+						}
+						UserList.notificationTimeout = window.setTimeout(
+							function(){
+								OC.Notification.hide();
+								UserList.notificationTimeout = null;
+							}, 10000);
+					}
+				}
+
+			}
+		)
+	});
+
 	// Handle undo notifications
 	OC.Notification.hide();
 	$('#notification').on('click', '.undo', function () {
diff --git a/settings/templates/users.php b/settings/templates/users.php
index a56c7229c1ac8d5dea9cf182eaf26f253c27d2e2..83ac79365b64fa09d04610f9fddbd5ad4bf9cc30 100644
--- a/settings/templates/users.php
+++ b/settings/templates/users.php
@@ -19,8 +19,10 @@ $_['subadmingroups'] = array_flip($items);
 	<ul>
 		<!-- Add new group -->
 		<li>
-			<input type="text" placeholder="<?php p($l->t('Group')); ?>..." />
-			<button><?php p($l->t('Add')); ?></button>
+			<form id="newgroup">
+				<input type="text" id="newgroupname" placeholder="<?php p($l->t('Group')); ?>..." />
+				<input type="submit" value="<?php p($l->t('Create'))?>" />
+			</form>
 		</li>
 		<!-- Everyone -->
 		<li>
@@ -89,7 +91,8 @@ $_['subadmingroups'] = array_flip($items);
 			<?php foreach($_["groups"] as $group): ?>
 			<option value="<?php p($group['name']);?>"><?php p($group['name']);?></option>
 			<?php endforeach;?>
-		</select> <input type="submit" value="<?php p($l->t('Create'))?>" />
+		</select>
+		<input type="submit" value="<?php p($l->t('Create'))?>" />
 	</form>
 	<?php if((bool)$_['recoveryAdminEnabled']): ?>
 	<div class="recoveryPassword">