diff --git a/src/main/java/se/su/dsv/scipro/admin/panels/match/AdminSupervisorKeywordPanel.java b/src/main/java/se/su/dsv/scipro/admin/panels/match/AdminSupervisorKeywordPanel.java
index df81dc809d..5eb586fe7b 100644
--- a/src/main/java/se/su/dsv/scipro/admin/panels/match/AdminSupervisorKeywordPanel.java
+++ b/src/main/java/se/su/dsv/scipro/admin/panels/match/AdminSupervisorKeywordPanel.java
@@ -17,11 +17,9 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.odlabs.wiquery.ui.dialog.Dialog;
 
-import se.su.dsv.scipro.data.dao.interfaces.Dao.SortableParams.Sort;
 import se.su.dsv.scipro.data.dataobjects.Employee;
 import se.su.dsv.scipro.match.dao.interfaces.KeywordTypeDao;
 import se.su.dsv.scipro.match.dao.interfaces.SupervisorDao;
-import se.su.dsv.scipro.match.dao.interfaces.SupervisorDaoParams;
 import se.su.dsv.scipro.match.dataobject.Keyword;
 import se.su.dsv.scipro.springdata.services.SupervisorService;
 
@@ -40,18 +38,12 @@ public class AdminSupervisorKeywordPanel extends Panel {
         Dialog dialog = new Dialog("detailsDialog");
         setUpDialog(dialog);
         WebMarkupContainer tableContainer = new WebMarkupContainer("table");
-        SupervisorDaoParams params =  new SupervisorDaoParams();
-        params.setSortOn("user.lastName", Sort.ASCENDING);
-        params.setSortOn("keywords.size()", Sort.ASCENDING);
         TextField<String> supervisorField = new TextField<String>("supervisorField", new Model<String>());
-		setUpTable(dialog, tableContainer, params);
-		setUpFiltering(tableContainer, params, supervisorField);
-    }
+        StringBuffer supervisorName = new StringBuffer();
+        add(new FilterForm(tableContainer, supervisorField, supervisorName));
+        setUpTable(dialog, tableContainer, supervisorName);
 
-	private void setUpFiltering(WebMarkupContainer tableContainer, SupervisorDaoParams params, TextField<String> supervisorField) {
-		FilterForm form = new FilterForm(tableContainer, params, supervisorField);
-		add(form);
-	}
+    }
 
 	private void setUpDialog(Dialog dialog) {
 		dialog.setModal(true);
@@ -63,32 +55,40 @@ public class AdminSupervisorKeywordPanel extends Panel {
 		add(dialog.setOutputMarkupId(true));
 	}
 
-    private org.springframework.data.domain.Sort getSortOrder(final StringBuffer nameSortDirection, final String orderBy) {
-        org.springframework.data.domain.Sort sortOrder;
-        if(nameSortDirection.toString().equals("ASC")) {
-            sortOrder = new org.springframework.data.domain.Sort(org.springframework.data.domain.Sort.Direction.DESC, orderBy);
-            nameSortDirection.delete(0, nameSortDirection.length()-1);
-            nameSortDirection.append("DESC");
+    private void getSortOrder(StringBuffer sortDirection, StringBuffer orderBy__, String orderBy, final StringBuffer supervisorName) {
+if(!supervisorName.toString().isEmpty()) {
+    String addToSearch = "true";
+}
+        if (sortDirection.toString().isEmpty() || sortDirection.toString().equals("DESC")) {
+            sortDirection.delete(0, sortDirection.length());
+            sortDirection.append("ASC");
         } else {
-            sortOrder = new org.springframework.data.domain.Sort(org.springframework.data.domain.Sort.Direction.ASC, orderBy);
-            nameSortDirection.delete(0, nameSortDirection.length()-1);
-            nameSortDirection.append("ASC");
+            sortDirection.delete(0, sortDirection.length());
+            sortDirection.append("DESC");
         }
-        return sortOrder;
+        orderBy__.delete(0, orderBy__.length());
+        orderBy__.append(orderBy);
     }
 
-	private void setUpTable(final Dialog dialog, final WebMarkupContainer tableContainer, final SupervisorDaoParams params) {
-        final StringBuffer nameSortDirection = new StringBuffer();
-        nameSortDirection.append("ASC");
-        final StringBuffer keywordsSortDirection = new StringBuffer();
-        keywordsSortDirection.append("ASC");
+	private void setUpTable(final Dialog dialog, final WebMarkupContainer tableContainer, final StringBuffer supervisorName) {
+        final StringBuffer sortDirection = new StringBuffer();
+        final StringBuffer orderBy = new StringBuffer();
 
         final ListView<Employee> dataView = new ListView<Employee>("supervisorList", new LoadableDetachableModel<List<Employee>>() {
             private static final long serialVersionUID = -2395796971679213814L;
 
             @Override
             protected List<Employee> load() {
-                return supervisorService.findAllEmployees(new org.springframework.data.domain.Sort(org.springframework.data.domain.Sort.Direction.ASC, "user.lastName"));
+                org.springframework.data.domain.Sort sorter;
+                if (sortDirection.toString().isEmpty()) {
+                    sorter = new org.springframework.data.domain.Sort(org.springframework.data.domain.Sort.Direction.ASC, "user.lastName");
+                }
+                else if (sortDirection.toString().equals("ASC")) {
+                    sorter = new org.springframework.data.domain.Sort(org.springframework.data.domain.Sort.Direction.ASC, orderBy.toString());
+                } else {
+                    sorter = new org.springframework.data.domain.Sort(org.springframework.data.domain.Sort.Direction.DESC, orderBy.toString());
+                }
+                return supervisorService.findAllEmployees(sorter);
             }
         }) {
 
@@ -99,7 +99,6 @@ public class AdminSupervisorKeywordPanel extends Panel {
                 final Employee supervisor = item.getModelObject();
                 List<Keyword> areaKeywords = supervisor.getKeywords().getFiltered(KeywordTypeDao.TYPE.RESEARCH_AREA.toDbName());
                 List<Keyword> regularKeywords = supervisor.getKeywords().getFiltered(KeywordTypeDao.TYPE.REGULAR.toDbName());
-
                 final AjaxLink<Void> detailsLink = new AjaxLink<Void>("detailsLink") {
 
                     private static final long serialVersionUID = 8902222410746133732L;
@@ -116,7 +115,6 @@ public class AdminSupervisorKeywordPanel extends Panel {
                         });
                         dialog.open(target);
                     }
-
                 };
                 detailsLink.add(new Label("supervisorName", supervisor.getNameAsString()));
                 item.add(detailsLink);
@@ -124,12 +122,13 @@ public class AdminSupervisorKeywordPanel extends Panel {
                 item.add(new Label("numberOfRegulars", "" + regularKeywords.size()));
             }
         };
+
 		final AjaxLink<Void> nameSortLink = new AjaxLink<Void>("nameSortLink") {
 			private static final long serialVersionUID = -6459164267551936706L;
 			@Override
 			public void onClick(AjaxRequestTarget target) {
-                dataView.setDefaultModelObject(supervisorService.findAllEmployees(getSortOrder(nameSortDirection,"user.lastName")));
-				target.addComponent(tableContainer);
+                getSortOrder(sortDirection, orderBy, "user.lastName", supervisorName);
+                target.addComponent(tableContainer);
 			}
 		};
 		tableContainer.add(nameSortLink);
@@ -140,7 +139,7 @@ public class AdminSupervisorKeywordPanel extends Panel {
 
             @Override
             public void onClick(AjaxRequestTarget target) {
-                dataView.setDefaultModelObject(supervisorService.findAllEmployees(getSortOrder(keywordsSortDirection,"keywords.getCollection().size")));
+                getSortOrder(sortDirection, orderBy, "keywords.all.size()", supervisorName);
                 target.addComponent(tableContainer);
             }
         };
@@ -153,7 +152,7 @@ public class AdminSupervisorKeywordPanel extends Panel {
 
 		private static final long serialVersionUID = 3488715734113880308L;
 
-		public FilterForm(final WebMarkupContainer tableContainer, final SupervisorDaoParams params, final TextField<String> supervisorField) {
+		public FilterForm(final WebMarkupContainer tableContainer, final TextField<String> supervisorField, final StringBuffer supervisorName) {
 			super("filterForm");
 			AjaxButton filterButton = new AjaxButton("filterButton") {
 
@@ -161,7 +160,7 @@ public class AdminSupervisorKeywordPanel extends Panel {
 
 				@Override
 				protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
-					params.setNameLike(supervisorField.getModelObject());
+                    supervisorName.append(supervisorField.getModelObject());
 					target.addComponent(tableContainer);
 				}
 			};