diff --git a/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/AutoCompleterController.java b/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/AutoCompleterController.java
index 5681a5b9bfef914ed1f319bb5e49b0c4595fcd59..d1c85ebcbc2966bc28d895355b3ad8289774ed72 100644
--- a/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/AutoCompleterController.java
+++ b/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/AutoCompleterController.java
@@ -114,6 +114,8 @@ public class AutoCompleterController extends BasicController {
 		myContent.contextPut("inputWidth", Integer.valueOf(inputWidth));
 		myContent.contextPut("minChars", Integer.valueOf(minChars));
 		myContent.contextPut("inputValue", "");
+		myContent.contextPut("inputClear", Boolean.FALSE);
+		myContent.contextPut("inputReadonly", Boolean.FALSE);
 		// Create a mapper for the server responses for a given input
 		mapper = new AutoCompleterMapper(noResults, showDisplayKey, gprovider);
 			
diff --git a/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/FlexiAutoCompleterController.java b/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/FlexiAutoCompleterController.java
index 031ea1eb92d9dded80cecae1c16bd156f4857806..9e8d7d5652e540e8211c0966512bb6724b8827d6 100644
--- a/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/FlexiAutoCompleterController.java
+++ b/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/FlexiAutoCompleterController.java
@@ -157,6 +157,8 @@ public class FlexiAutoCompleterController extends FormBasicController {
 		layoutCont.contextPut("minChars", Integer.valueOf(minChars));
 		layoutCont.contextPut("flexi", Boolean.TRUE);
 		layoutCont.contextPut("inputValue", "");
+		layoutCont.contextPut("inputClear", Boolean.FALSE);
+		layoutCont.contextPut("inputReadonly", Boolean.FALSE);		
 		layoutCont.getComponent().addListener(this);
 
 		// Create a mapper for the server responses for a given input
@@ -186,8 +188,10 @@ public class FlexiAutoCompleterController extends FormBasicController {
 			if (event.getCommand().equals(COMMAND_SELECT)) {
 				doSelect(ureq);
 			} else if (event.getCommand().equals(COMMAND_CHANGE)) {
+				flc.contextPut("inputReadonly", Boolean.FALSE);
+				flc.contextPut("inputClear", Boolean.FALSE);
 				if(allowNewValues) {
-					fireEvent(ureq, new NewValueChosenEvent(value));	
+					fireEvent(ureq, new NewValueChosenEvent(value));
 				} else {
 					super.event(ureq, source, event);
 				}				
@@ -235,7 +239,11 @@ public class FlexiAutoCompleterController extends FormBasicController {
 		if (!key.equals("") && !key.equals(AUTOCOMPLETER_NO_RESULT)) {
 			// Normal case, add entry
 			selectedEntries.add(key);
+			flc.contextPut("inputReadonly", Boolean.TRUE);
+			flc.contextPut("inputClear", Boolean.TRUE);
 		} else if (key.equals(AUTOCOMPLETER_NO_RESULT)) {
+			flc.contextPut("inputReadonly", Boolean.FALSE);
+			flc.contextPut("inputClear", Boolean.FALSE);
 			return;
 		}
 		doFireSelection(ureq, selectedEntries);
diff --git a/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/_content/autocomplete.html b/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/_content/autocomplete.html
index 506d2e057f9e3bd59009de3c84158957f5e9a733..80ef5539e381bf5add61a1e36834ff736aa8b688 100644
--- a/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/_content/autocomplete.html
+++ b/src/main/java/org/olat/core/gui/control/generic/ajax/autocompletion/_content/autocomplete.html
@@ -8,7 +8,8 @@
 		$autocompleter_label 
 	#end
 	<div class="$formElementClass">
-	    <input type="text" size="$inputWidth" value="$inputValue" class="form-control" name='$r.getId("o_autocomplete_input")' id='$r.getId("o_autocomplete_input")' />
+	    <input type="text" size="$inputWidth" #if($inputReadonly)readonly="true"#{end} value="$inputValue" class="form-control" name='$r.getId("o_autocomplete_input")' id='$r.getId("o_autocomplete_input")' />
+		<i id='$r.getId("o_autocomplete_input")_remove' class="#if(!$inputClear)hidden #{end}o_icon o_icon-fw o_icon_remove"></i>
 	</div>	
 	#if($flexi)
 		</div>
@@ -62,7 +63,9 @@ jQuery(function(){
 	}).on('typeahead:render', function (e) {
 		// disabled and error items should not be selectable
 		jQuery("div.o_disabled.tt-selectable, div.o_icon_error.tt-selectable").removeClass("tt-selectable");
-	}).on('typeahead:selected', function (e, object) { 
+	}).on('typeahead:selected', function (e, object) {
+		jQuery('#$r.getId("o_autocomplete_input")').attr('readonly', true);
+		jQuery('#$r.getId("o_autocomplete_input")_remove').removeClass('hidden');
 		$r.openJavaScriptCommand("select"),'key',object.value,
 			'$r.getId("o_autocomplete_input")',jQuery('#$r.getId("o_autocomplete_input")').val());
 	}).on('typeahead:change', function(e, value) {
@@ -77,6 +80,13 @@ jQuery(function(){
 			return false;
 		}
 	});
+	jQuery('#$r.getId("o_autocomplete_input")_remove').on('click', function(e) {		
+		jQuery('#$r.getId("o_autocomplete_input")').val('');
+		jQuery('#$r.getId("o_autocomplete_input")').attr('readonly', false);
+		jQuery('#$r.getId("o_autocomplete_input")_remove').addClass('hidden');
+		$r.openJavaScriptCommand("change"),'key','',
+			'$r.getId("o_autocomplete_input")','');
+	});
 });
 /* ]]> */
 </script>
\ No newline at end of file