diff --git a/lib/user.php b/lib/user.php
index 801ab7f608da99569c9263a83ed7d17cc00f41c5..31c93740d77c4a0ead5615495eaf5833cb9bd903 100644
--- a/lib/user.php
+++ b/lib/user.php
@@ -182,7 +182,7 @@ class OC_User {
 				$backend->createUser($uid, $password);
 				OC_Hook::emit( "OC_User", "post_createUser", array( "uid" => $uid, "password" => $password ));
 
-				return true;
+				return self::userExists($uid);
 			}
 		}
 		return false;
@@ -204,6 +204,9 @@ class OC_User {
 			foreach(self::$_usedBackends as $backend) {
 				$backend->deleteUser($uid);
 			}
+			if (self::userExists($uid)) {
+				return false;
+			}
 			// We have to delete the user from all groups
 			foreach( OC_Group::getUserGroups( $uid ) as $i ) {
 				OC_Group::removeFromGroup( $uid, $i );
diff --git a/settings/ajax/createuser.php b/settings/ajax/createuser.php
index 16b48c8a9ca058bd0ed1ee177094e93bb7152746..addae78517a45c51de930517355eb8a41ba42d23 100644
--- a/settings/ajax/createuser.php
+++ b/settings/ajax/createuser.php
@@ -29,14 +29,17 @@ $username = $_POST["username"];
 $password = $_POST["password"];
 
 // Does the group exist?
-if( in_array( $username, OC_User::getUsers())) {
+if(OC_User::userExists($username)) {
 	OC_JSON::error(array("data" => array( "message" => "User already exists" )));
 	exit();
 }
 
 // Return Success story
 try {
-	OC_User::createUser($username, $password);
+	if (!OC_User::createUser($username, $password)) {
+		OC_JSON::error(array('data' => array( 'message' => 'User creation failed for '.$username )));
+		exit();
+	}
 	foreach( $groups as $i ) {
 		if(!OC_Group::groupExists($i)) {
 			OC_Group::createGroup($i);
diff --git a/settings/js/users.js b/settings/js/users.js
index 249d529df4f6354c744170cfaac44349ecdc9817..517984f92475b88e2a50932086dccc75d2c9f01d 100644
--- a/settings/js/users.js
+++ b/settings/js/users.js
@@ -29,7 +29,6 @@ var UserList={
 		$('#notification').html(t('users', 'deleted')+' '+uid+'<span class="undo">'+t('users', 'undo')+'</span>');
 		$('#notification').data('deleteuser',true);
 		$('#notification').fadeIn();
-			
 	},
 	
 	/**
@@ -57,10 +56,11 @@ var UserList={
 						$('#notification').fadeOut();
 						$('tr').filterAttr('data-uid', UserList.deleteUid).remove();
 						UserList.deleteCanceled = true;
-						UserList.deleteFiles = null;
 						if (ready) {
 							ready();
 						}
+					} else {
+						oc.dialogs.alert(result.data.message, t('settings', 'Unable to remove user'));
 					}
 				}
 			});
@@ -69,7 +69,7 @@ var UserList={
 
 	add:function(username, groups, subadmin, quota, sort) {
 		var tr = $('tbody tr').first().clone();
-		tr.data('uid', username);
+		tr.attr('data-uid', username);
 		tr.find('td.name').text(username);
 		var groupsSelect = $('<select multiple="multiple" class="groupsselect" data-placehoder="Groups" title="Groups">');
 		groupsSelect.data('username', username);
@@ -123,7 +123,7 @@ var UserList={
 		if (sort) {
 			username = username.toLowerCase();
 			$('tbody tr').each(function() {
-				if (username < $(this).data('uid').toLowerCase()) {
+				if (username < $(this).attr('data-uid').toLowerCase()) {
 					$(tr).insertBefore($(this));
 					added = true;
 					return false;
@@ -267,7 +267,7 @@ $(document).ready(function(){
 	
 	$('td.remove>a').live('click',function(event){
 		var row = $(this).parent().parent();
-		var uid = $(row).data('uid');
+		var uid = $(row).attr('data-uid');
 		$(row).hide();
 		// Call function for handling delete/undo
 		UserList.do_delete(uid);
@@ -276,7 +276,7 @@ $(document).ready(function(){
 	$('td.password>img').live('click',function(event){
 		event.stopPropagation();
 		var img=$(this);
-		var uid=img.parent().parent().data('uid');
+		var uid=img.parent().parent().attr('data-uid');
 		var input=$('<input type="password">');
 		img.css('display','none');
 		img.parent().children('span').replaceWith(input);
@@ -306,7 +306,7 @@ $(document).ready(function(){
 	
 	$('select.quota, select.quota-user').live('change',function(){
 		var select=$(this);
-		var uid=$(this).parent().parent().parent().data('uid');
+		var uid=$(this).parent().parent().parent().attr('data-uid');
 		var quota=$(this).val();
 		var other=$(this).next();
 		if(quota!='other'){
@@ -324,7 +324,7 @@ $(document).ready(function(){
 	})
 	
 	$('input.quota-other').live('change',function(){
-		var uid=$(this).parent().parent().parent().data('uid');
+		var uid=$(this).parent().parent().parent().attr('data-uid');
 		var quota=$(this).val();
 		var select=$(this).prev();
 		var other=$(this);
@@ -401,13 +401,8 @@ $(document).ready(function(){
 	$('#notification').hide();
 	$('#notification .undo').live('click', function() {
 		if($('#notification').data('deleteuser')) {
-			$('tbody tr').each(function(index, row) {
-				if ($(row).data('uid') == UserList.deleteUid) {
-					$(row).show();
-				}
-			});
+			$('tbody tr').filterAttr('data-uid', UserList.deleteUid).show();
 			UserList.deleteCanceled=true;
-			UserList.deleteFiles=null;
 		}
 		$('#notification').fadeOut();
 	});