diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBasicController.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBasicController.java
index c66a2673ed4c3c90cfa34defa593a9aeb49baf27..2274ce8da6b935b594bc57d3e2c65dd140324c7f 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBasicController.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormBasicController.java
@@ -306,7 +306,6 @@ public abstract class FormBasicController extends BasicController {
 	 *      org.olat.core.gui.components.Component,
 	 *      org.olat.core.gui.control.Event)
 	 */
-	@SuppressWarnings("unused")
 	@Override
 	public void event(UserRequest ureq, Component source, Event event) {
 		if (source == mainForm.getInitialComponent()) {
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainerRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainerRenderer.java
index aec5a331ef4198d4ccac648a4307fd42edbf12e4..08add6ddf378fe23d77fe388c6f2e6a6f45c4e3d 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainerRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/FormWrapperContainerRenderer.java
@@ -62,7 +62,7 @@ class FormWrapperContainerRenderer implements ComponentRenderer {
 	 *      org.olat.core.gui.translator.Translator,
 	 *      org.olat.core.gui.render.RenderResult, java.lang.String[])
 	 */
-	@SuppressWarnings("unused")
+	@Override
 	public void render(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderResult renderResult, String[] args) {
 		FormWrapperContainer formC = (FormWrapperContainer) source;
@@ -135,6 +135,7 @@ class FormWrapperContainerRenderer implements ComponentRenderer {
 	 *      org.olat.core.gui.components.Component,
 	 *      org.olat.core.gui.render.RenderingState)
 	 */
+	@Override
 	public void renderBodyOnLoadJSFunctionCall(Renderer renderer, StringOutput sb, Component source, RenderingState rstate) {
 		FormWrapperContainer formC = (FormWrapperContainer) source;
 		Container toRender = formC.getFormLayout();
@@ -151,7 +152,7 @@ class FormWrapperContainerRenderer implements ComponentRenderer {
 	 *      org.olat.core.gui.translator.Translator,
 	 *      org.olat.core.gui.render.RenderingState)
 	 */
-	@SuppressWarnings("unused")
+	@Override
 	public void renderHeaderIncludes(Renderer renderer, StringOutput sb, Component source, URLBuilder ubu, Translator translator,
 			RenderingState rstate) {
 		FormWrapperContainer formC = (FormWrapperContainer) source;
diff --git a/src/main/java/org/olat/core/util/StringHelper.java b/src/main/java/org/olat/core/util/StringHelper.java
index 63e499abab2234804e675c89ab5af2205d08ea28..1df68d2a6fec3d94040f64dcbb963b40f1b8da9d 100644
--- a/src/main/java/org/olat/core/util/StringHelper.java
+++ b/src/main/java/org/olat/core/util/StringHelper.java
@@ -358,6 +358,12 @@ public class StringHelper {
 		return new OWASPAntiSamyXSSFilter().filter(str);
 	}
 	
+	public static final boolean xssScanForErrors(String str) {
+		OWASPAntiSamyXSSFilter filter = new OWASPAntiSamyXSSFilter();
+		filter.filter(str);
+		return filter.getNumOfErrors() > 0;
+	}
+	
 	public static final String escapeJavaScript(String str) {
 		return StringEscapeUtils.escapeJavaScript(str);
 	}
diff --git a/src/main/java/org/olat/core/util/filter/impl/OWASPAntiSamyXSSFilter.java b/src/main/java/org/olat/core/util/filter/impl/OWASPAntiSamyXSSFilter.java
index b93860573dabd37ecc9ab0d75105417d9de38c53..464f9d2726bf439c8bb479d805b56f021f6fbaa3 100644
--- a/src/main/java/org/olat/core/util/filter/impl/OWASPAntiSamyXSSFilter.java
+++ b/src/main/java/org/olat/core/util/filter/impl/OWASPAntiSamyXSSFilter.java
@@ -164,6 +164,13 @@ public class OWASPAntiSamyXSSFilter implements Filter {
 		
 		return output;
 	}
+	
+	public int getNumOfErrors() {
+		if (cr != null) {
+			return cr.getNumberOfErrors();
+		}
+		return -1;
+	}
 
 	/**
 	 * get Errors/Messages from filter. 
diff --git a/src/main/java/org/olat/modules/wiki/WikiArticleSearchForm.java b/src/main/java/org/olat/modules/wiki/WikiArticleSearchForm.java
index 0d8e428a263afaa704d6cf727e6e210105ddac09..da50a2f7cf35be78d6a7fdd2602c7066c9487b6f 100644
--- a/src/main/java/org/olat/modules/wiki/WikiArticleSearchForm.java
+++ b/src/main/java/org/olat/modules/wiki/WikiArticleSearchForm.java
@@ -28,10 +28,10 @@ import org.olat.core.gui.UserRequest;
 import org.olat.core.gui.components.form.flexible.FormItemContainer;
 import org.olat.core.gui.components.form.flexible.elements.TextElement;
 import org.olat.core.gui.components.form.flexible.impl.FormBasicController;
-import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit;
 import org.olat.core.gui.control.Controller;
 import org.olat.core.gui.control.Event;
 import org.olat.core.gui.control.WindowControl;
+import org.olat.core.util.StringHelper;
 
 /**
  * Description:<br>
@@ -47,7 +47,7 @@ public class WikiArticleSearchForm extends FormBasicController {
 
 	public WikiArticleSearchForm(UserRequest ureq, WindowControl control) {
 		super(ureq, control, "articleSearch");
-		initForm(this.flc, this, ureq);
+		initForm(ureq);
 	}
 
 	/**
@@ -67,20 +67,34 @@ public class WikiArticleSearchForm extends FormBasicController {
 	/**
 	 * @see org.olat.core.gui.components.form.flexible.impl.FormBasicController#initForm(org.olat.core.gui.components.form.flexible.FormItemContainer, org.olat.core.gui.control.Controller, org.olat.core.gui.UserRequest)
 	 */
-	@SuppressWarnings("unused") 
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		searchQuery = uifactory.addTextElement("search", null, 250, null, formLayout);
 		searchQuery.setDisplaySize(40);
 		
-		FormSubmit submit = new FormSubmit("subm", "navigation.create.article");
-		formLayout.add(submit);
+		uifactory.addFormSubmitButton("subm", "navigation.create.article", formLayout);
 	}
-	
+
+	@Override
+	protected boolean validateFormLogic(UserRequest ureq) {
+		boolean allOk = true;
+		
+		String val = searchQuery.getValue();
+		searchQuery.clearError();
+		if(!StringHelper.containsNonWhitespace(val)) {
+			searchQuery.setErrorKey("form.legende.mandatory", null);
+			allOk = false;
+		} else if(StringHelper.xssScanForErrors(val)) {
+			searchQuery.setErrorKey("form.legende.mandatory", null);
+			searchQuery.setValue("");
+			allOk = false;
+		}
+
+		return allOk & super.validateFormLogic(ureq);
+	}
+
 	public String getQuery() {
 		String query = searchQuery.getValue();
-		searchQuery.setValue(null);
 		return query;
 	}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/wiki/WikiMainController.java b/src/main/java/org/olat/modules/wiki/WikiMainController.java
index d0bccb9ec7de03859df271ccb43f3cf51c093902..8a69b3c5217adf2fd82c073a3224b4d337a3a7c3 100644
--- a/src/main/java/org/olat/modules/wiki/WikiMainController.java
+++ b/src/main/java/org/olat/modules/wiki/WikiMainController.java
@@ -73,6 +73,7 @@ import org.olat.core.logging.Tracing;
 import org.olat.core.logging.activity.LearningResourceLoggingAction;
 import org.olat.core.logging.activity.OlatResourceableType;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
+import org.olat.core.util.StringHelper;
 import org.olat.core.util.coordinate.CoordinatorManager;
 import org.olat.core.util.coordinate.LockResult;
 import org.olat.core.util.notifications.ContextualSubscriptionController;
@@ -409,7 +410,7 @@ public class WikiMainController extends BasicController implements CloneableCont
 		if (!(event instanceof RequestNewPageEvent) && !(event instanceof RequestMediaEvent) && !(event instanceof RequestImageEvent)) {
 			page = wiki.getPage(pageId, true);
 			//set recent page id to the page currently used
-			if (page != null) this.pageId = page.getPageId();
+			if (page != null) pageId = page.getPageId();
 		}
 		
 		if (source == content) {
@@ -807,7 +808,9 @@ public class WikiMainController extends BasicController implements CloneableCont
 
 		else if (source == searchOrCreateArticleForm) {
 			String query = searchOrCreateArticleForm.getQuery();
-			if (query == null) query = WikiPage.WIKI_INDEX_PAGE;
+			if (!StringHelper.containsNonWhitespace(query)) {
+				query = WikiPage.WIKI_INDEX_PAGE;
+			}
 			page = wiki.findPage(query);
 			pageId = page.getPageId();
 			if (page.getPageName().equals(Wiki.NEW_PAGE)) setTabsEnabled(false);
diff --git a/src/main/java/org/olat/modules/wiki/_content/articleSearch.html b/src/main/java/org/olat/modules/wiki/_content/articleSearch.html
index 2f49be025ffacd925b3d4c5532ea404da63103cb..a8883a0b3c0f0025aa64e2f7541768fa810a6df9 100644
--- a/src/main/java/org/olat/modules/wiki/_content/articleSearch.html
+++ b/src/main/java/org/olat/modules/wiki/_content/articleSearch.html
@@ -1,4 +1,5 @@
 $r.render("search")
+$r.render("search_ERROR")
 <div class="b_button_group o_sel_wiki_search">
 	$r.render("subm")
 </div>
\ No newline at end of file