diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js
index 7c8b6608f1146dafd6f08f157e3cea02944a7e16..9f8225294b99f4cc23e0ef566fce64c1405f210a 100644
--- a/settings/js/users/groups.js
+++ b/settings/js/users/groups.js
@@ -74,6 +74,11 @@
 		OC.Notification.showHtml(t('settings', 'deleted') + ' ' + escapeHTML(gid) + '<span class="undo">' + t('settings', 'undo') + '</span>');
 	},
 
+	elementBelongsToAddGroup: function(el) {
+		return !(el !== $('#newgroup-form').get(0)
+				&& $('#newgroup-form').find($(el)).length === 0);
+	},
+
 	showGroup: function (gid) {
 		UserList.empty();
 		UserList.update(gid);
@@ -84,8 +89,12 @@
 		}
 	},
 
+	isAddGroupButtonVisible: function() {
+		return $('#newgroup-init').is(":visible");
+	},
+
 	toggleAddGroup: function(event) {
-		if($('#newgroup-init').is(":visible")) {
+		if(GroupList.isAddGroupButtonVisible()) {
 			event.stopPropagation();
 			$('#newgroup-form').show();
 			$('#newgroup-init').hide();
@@ -149,6 +158,18 @@ $(document).ready( function () {
 		GroupList.toggleAddGroup(e);
 	});
 
+	$(document).on('click keydown keyup', function(event) {
+		if(!GroupList.isAddGroupButtonVisible()
+			&& !GroupList.elementBelongsToAddGroup(event.target)) {
+			GroupList.toggleAddGroup();
+		}
+		// Escape
+		if(!GroupList.isAddGroupButtonVisible() && event.keyCode && event.keyCode === 27) {
+			GroupList.toggleAddGroup();
+		}
+	});
+
+
 	// Responsible for Creating Groups.
 	$('#newgroup-form form').submit(function (event) {
 		event.preventDefault();