diff --git a/settings/ajax/setquota.php b/settings/ajax/setquota.php
index 7bfc65102c1858502f597e8f7e622c52335dc02f..e66513e54cc52c0fcf237424fcf7f47e5eb3f9f7 100644
--- a/settings/ajax/setquota.php
+++ b/settings/ajax/setquota.php
@@ -11,10 +11,11 @@ $username = $_POST["username"];
 $quota=$_POST["quota"];
 if($quota!='none' and $quota!='default'){
 	$quota= OC_Helper::computerFileSize($quota);
-	$quota=OC_Helper::humanFileSize($quota);
-}
-if($quota==0){
-	$quota='default';
+	if($quota==0){
+		$quota='default';
+	}else{
+		$quota=OC_Helper::humanFileSize($quota);
+	}
 }
 
 // Return Success story
diff --git a/settings/css/settings.css b/settings/css/settings.css
index a8af839a1e6ce6131ec137b4678a9aba1b360086..b80d7da82c6babc5959e712248ebc6113b8f3387 100644
--- a/settings/css/settings.css
+++ b/settings/css/settings.css
@@ -29,6 +29,9 @@ li.selected { background-color:#ddd; }
 #content>table:not(.nostyle) { margin-top:3em; }
 table:not(.nostyle) { width:100%; }
 #rightcontent { padding-left: 1em; }
+td.quota { position:relative }
+select.quota { position:absolute; left:0px; top:0px; width:10em; }
+input.quota-other { display:none; position:absolute; left:0.1em; top:0.1em; width:7em; border:none; -webkit-box-shadow: none -mox-box-shadow:none ; box-shadow:none; }
 
 /* APPS */
 li { color:#888; }
diff --git a/settings/js/users.js b/settings/js/users.js
index c9b1d855db0f7898e7945f7e2ff2c5238827c9ab..bfc00138e0e147bb7300ca4bd7c9ebb8c6987655 100644
--- a/settings/js/users.js
+++ b/settings/js/users.js
@@ -5,6 +5,18 @@
  */
 
 $(document).ready(function(){
+	function setQuota(uid,quota,ready){
+		$.post(
+			OC.filePath('settings','ajax','setquota.php'),
+			{username:uid,quota:quota},
+			function(result){
+				if(ready){
+					ready(result.data.quota);
+				}
+			}
+		);
+	}
+	
 	function applyMultiplySelect(element){
 		var checked=[];
 		var user=element.data('username');
@@ -82,48 +94,63 @@ $(document).ready(function(){
 	$('td.password').live('click',function(event){
 		$(this).children('img').click();
 	});
-
-	$('td.quota>img').live('click',function(event){
-		event.stopPropagation();
-		var img=$(this);
-		var uid=img.parent().parent().data('uid');
-		var input=$('<input>');
-		var quota=img.parent().children('span').text();
-		if(quota=='None'){
-			quota='';
+	
+	$('select.quota').live('change',function(){
+		var select=$(this);
+		var uid=$(this).parent().parent().data('uid');
+		var quota=$(this).val();
+		var other=$(this).next();
+		if(quota!='other'){
+			other.hide();
+			select.data('previous',quota);
+			setQuota(uid,quota);
+		}else{
+			other.show();
+			other.focus();
 		}
-		input.val(quota);
-		img.css('display','none');
-		img.parent().children('span').replaceWith(input);
-		input.focus();
-		input.keypress(function(event) {
-			if(event.keyCode == 13) {
-				$(this).parent().attr('data-quota',$(this).val());
-				if($(this).val().length>0){
-					$.post(
-						OC.filePath('settings','ajax','setquota.php'),
-						{username:uid,quota:$(this).val()},
-						function(result){
-							img.parent().children('span').text(result.data.quota)
-							$(this).parent().attr('data-quota',result.data.quota);
-						}
-					);
-					input.blur();
+	});
+	$('select.quota').each(function(i,select){
+		$(select).data('previous',$(select).val());
+	})
+	
+	$('input.quota-other').live('change',function(){
+		var uid=$(this).parent().parent().data('uid');
+		var quota=$(this).val();
+		var select=$(this).prev();
+		var other=$(this);
+		if(quota){
+			setQuota(uid,quota,function(quota){
+				select.children().attr('selected',null);
+				var existingOption=select.children().filter(function(i,option){
+					return ($(option).val()==quota);
+				});
+				if(existingOption.length){
+					existingOption.attr('selected','selected');
 				}else{
-					input.blur();
+					var option=$('<option/>');
+					option.attr('selected','selected').attr('value',quota).text(quota);
+					select.children().last().before(option);
 				}
-			}
-		});
-		input.blur(function(){
-			var quota=$(this).parent().attr('data-quota');
-			$(this).replaceWith($('<span>'+quota+'</span>'));
-			img.css('display','');
-		});
-	});
-	$('td.quota').live('click',function(event){
-		$(this).children('img').click();
+				select.val(quota);
+				other.val(null);
+				other.hide();
+			});
+		}else{
+			var previous=select.data('previous');
+			select.children().attr('selected',null);
+			select.children().each(function(i,option){
+				if($(option).val()==previous){
+					$(option).attr('selected','selected');
+				}
+			});
+			other.hide();
+		}
 	});
 	
+	$('input.quota-other').live('blur',function(){
+		$(this).change();
+	})
+	
 	$('#newuser').submit(function(event){
 		event.preventDefault();
 		var username=$('#newusername').val();
@@ -166,5 +193,9 @@ $(document).ready(function(){
 		}
 		applyMultiplySelect(select);
 		$('#content table tbody').last().after(tr);
+		
+		tr.find('select.quota option').attr('selected',null);
+		tr.find('select.quota option').first().attr('selected','selected');
+		tr.find('select.quota').data('previous','default');
 	});
 });
diff --git a/settings/templates/users.php b/settings/templates/users.php
index fde4cfb9aed01846c3a4e3791bb90f697475aaec..4d75b7a06dbe6a94ca00a41d2298327c65ed19d3 100644
--- a/settings/templates/users.php
+++ b/settings/templates/users.php
@@ -48,9 +48,17 @@ foreach($_["groups"] as $group) {
 					<?php endforeach;?>
 				</select>
 			</td>
-			<td class="quota" data-quota="<?php echo $user['quota']?>">
-				<span><?php echo ($user['quota']>0)?$user['quota']:'None';?></span>
-				<img class="svg action" src="<?php echo image_path('core','actions/rename.svg')?>" alt="set new password" title="set quota" />
+			<td class="quota">
+				<select class='quota'>
+					<?php foreach($_['quota_preset'] as $preset):?>
+						<option <?php if($user['quota']==$preset) echo 'selected="selected"';?> value='<?php echo $preset;?>'><?php echo $preset;?></option>
+					<?php endforeach;?>
+					<?php if(array_search($user['quota'],$_['quota_preset'])===false):?>
+						<option selected="selected" value='<?php echo $user['quota'];?>'><?php echo $user['quota'];?></option>
+					<?php endif;?>
+					<option value='other'><?php echo $l->t('Other');?>...</option>
+				</select>
+				<input class='quota-other'></input>
 			</td>
 			<td class="remove">
 				<?php if($user['name']!=OC_User::getUser()):?>
diff --git a/settings/users.php b/settings/users.php
index e5dcc0494817dff3d416bd5e4936a70064d38872..1ae75752115299e7d294229d5ba72a9433c49352 100644
--- a/settings/users.php
+++ b/settings/users.php
@@ -18,17 +18,23 @@ $users = array();
 $groups = array();
 
 foreach( OC_User::getUsers() as $i ){
-	$users[] = array( "name" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ),'quota'=>OC_Preferences::getValue($i,'files','quota',0));
+	$users[] = array( "name" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ),'quota'=>OC_Preferences::getValue($i,'files','quota','default'));
 }
 
 foreach( OC_Group::getGroups() as $i ){
 	// Do some more work here soon
 	$groups[] = array( "name" => $i );
 }
+$quotaPreset=OC_Appconfig::getValue('files','quota_preset','default,none,1 GB, 5 GB, 10 GB');
+$quotaPreset=explode(',',$quotaPreset);
+foreach($quotaPreset as &$preset){
+	$preset=trim($preset);
+}
 
 $tmpl = new OC_Template( "settings", "users", "user" );
 $tmpl->assign( "users", $users );
 $tmpl->assign( "groups", $groups );
+$tmpl->assign( 'quota_preset', $quotaPreset);
 $tmpl->printPage();
 
 ?>