diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
index 1abb14457d876c41953cac103adcefd82aab0b82..42aef89e53ed779fcfa261933fced7dc1d29a9ba 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/DesktopMenuToolbarViewController.java
@@ -178,6 +178,20 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 
 		fullScreenMenuItem.setAccelerator(KeyCombination.valueOf(keys.getKey("window_fullscreen").getKeyCode()));
 		alwaysOnTopItem.setAccelerator(KeyCombination.valueOf(keys.getKey("window_top").getKeyCode()));
+
+		newProjectMenuItem.setDisable(false);
+		openProjectMenuItem.setDisable(false);
+		saveProjectMenuItem.setDisable(false);
+		printProjectMenuItem.setDisable(false);
+
+		dndModeMenuItem.setDisable(false);
+		errorMenu.setDisable(false);
+		pluginMenu.setDisable(false);
+		settingsMenuItem.setDisable(false);
+		globalSettingsMenuItem.setDisable(false);
+
+		fullScreenMenuItem.setDisable(false);
+		alwaysOnTopItem.setDisable(false);
 	}
 
 	@Override
@@ -234,8 +248,19 @@ public class DesktopMenuToolbarViewController extends BasicMenuToolbarViewContro
 
 	@Override
 	public void deinit() {
-		toolbarHBox.prefWidthProperty().unbind();
-		toolbarHBox.prefHeightProperty().unbind();
+		newProjectMenuItem.setDisable(true);
+		openProjectMenuItem.setDisable(true);
+		saveProjectMenuItem.setDisable(true);
+		printProjectMenuItem.setDisable(true);
+
+		dndModeMenuItem.setDisable(true);
+		errorMenu.setDisable(true);
+		pluginMenu.setDisable(true);
+		settingsMenuItem.setDisable(true);
+		globalSettingsMenuItem.setDisable(true);
+
+		fullScreenMenuItem.setDisable(true);
+		alwaysOnTopItem.setDisable(true);
 
 		// Disable Drag Mode wenn aktiv und diese Toolbar deaktiviert wird.
 		if (dndModeMenuItem.isSelected()) {
diff --git a/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java b/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java
index 3e463aeb64931b9edbc97607f127bcfea036426f..cc38aada38590f189e598adee5e17670ad766a1b 100644
--- a/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java
+++ b/PlayWall/src/de/tobias/playpad/layout/touch/TouchMenuToolbarViewController.java
@@ -39,14 +39,14 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll
 		toolbarHBox.prefHeightProperty().bind(toolbar.minHeightProperty());
 
 		showLiveInfo(false);
-		
+
 		// Schriftgröße Icons
 		FontIcon icon = (FontIcon) volumeDownLabel.getGraphic();
 		icon.setSize(35);
 		icon = (FontIcon) volumeUpLabel.getGraphic();
 		icon.setSize(35);
 	}
-	
+
 	@Override
 	public void initPageButtons() {
 		pageHBox.getChildren().clear();
@@ -64,9 +64,9 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll
 
 	@Override
 	public void loadKeybinding(KeyCollection keys) {
-		
+
 	}
-	
+
 	@Override
 	public void setLocked(boolean looked) {}
 
@@ -107,10 +107,7 @@ public class TouchMenuToolbarViewController extends BasicMenuToolbarViewControll
 	}
 
 	@Override
-	public void deinit() {
-		toolbarHBox.prefWidthProperty().unbind();
-		toolbarHBox.prefHeightProperty().unbind();
-	}
+	public void deinit() {}
 
 	@Override
 	public void showLiveInfo(boolean show) {
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java
index 51e2c9ffe6cdb931fb08bf9a10c41d2ebdfd493f..d1eb43303d7f411b344626a2db2ac48686b27021 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewControllerV2.java
@@ -195,7 +195,7 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon
 		ProfileSettings settings = Profile.currentProfile().getProfileSettings();
 
 		if (menuToolbarViewController != null) {
-			// menuToolbarViewController.deinit();
+			menuToolbarViewController.deinit();
 
 			menuToolbarViewController.getVolumeSlider().valueProperty().unbindBidirectional(settings.volumeProperty());
 			menuToolbarViewController.getVolumeSlider().valueProperty().removeListener(volumeChangeListener);
@@ -221,6 +221,10 @@ public class MainViewControllerV2 extends ViewController implements IMainViewCon
 		GlobalSettings globalSettings = PlayPadPlugin.getImplementation().getGlobalSettings();
 		menuToolbarViewController.loadKeybinding(globalSettings.getKeyCollection());
 
+		// Update Locked Listener
+		ProfileSettings profileSettings = Profile.currentProfile().getProfileSettings();
+		lockedListener.changed(profileSettings.lockedProperty(), !profileSettings.isLocked(), profileSettings.isLocked());
+
 		createPadViews();
 		showPage(currentPageShowing);
 
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/KeysTabViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/KeysTabViewController.java
index 4781a824ebfe051e85448e3c3d7392c5d21b8320..6036bb4f44f4cce879d653faf1cc2aa83227cb25 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/KeysTabViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/KeysTabViewController.java
@@ -12,18 +12,21 @@ import de.tobias.utils.util.Localization;
 import de.tobias.utils.util.OS;
 import javafx.application.Platform;
 import javafx.beans.property.SimpleStringProperty;
+import javafx.collections.FXCollections;
+import javafx.collections.ObservableList;
+import javafx.collections.transformation.FilteredList;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
 import javafx.scene.Scene;
 import javafx.scene.control.Alert;
 import javafx.scene.control.Alert.AlertType;
-import javafx.scene.input.KeyCode;
 import javafx.scene.control.Button;
 import javafx.scene.control.ButtonType;
 import javafx.scene.control.Label;
 import javafx.scene.control.TableColumn;
 import javafx.scene.control.TableView;
 import javafx.scene.control.TextField;
+import javafx.scene.input.KeyCode;
 import javafx.stage.Stage;
 
 public class KeysTabViewController extends GlobalSettingsTabViewController {
@@ -39,6 +42,7 @@ public class KeysTabViewController extends GlobalSettingsTabViewController {
 	@FXML private Button newShortcutButton;
 
 	private Key currentKey;
+	private ObservableList<Key> keys = FXCollections.observableArrayList();
 
 	public KeysTabViewController() {
 		super("keysTab", "de/tobias/playpad/assets/view/option/global/", PlayPadMain.getUiResourceBundle());
@@ -60,6 +64,7 @@ public class KeysTabViewController extends GlobalSettingsTabViewController {
 		{
 			setDetailView(c);
 		});
+		searchTextField.textProperty().addListener((a, b, c) -> search());
 	}
 
 	private void setDetailView(Key key) {
@@ -93,16 +98,19 @@ public class KeysTabViewController extends GlobalSettingsTabViewController {
 
 			if (OS.isWindows() || macCondition) {
 				String key = ev.getCode().getName();
-				currentKey.setKey(key);
 
-				currentKey.setAlt(ev.isAltDown());
-				currentKey.setMeta(ev.isMetaDown());
-				currentKey.setCtrl(ev.isControlDown());
-				currentKey.setShift(ev.isShiftDown());
+				Key newKey = new Key(currentKey.getId(), key, ev.isControlDown(), ev.isAltDown(), ev.isMetaDown(), ev.isShiftDown());
 
-				shortcutLabel.setText(currentKey.toString());
+				GlobalSettings globalSettings = PlayPadPlugin.getImplementation().getGlobalSettings();
+				boolean conflict = globalSettings.getKeyCollection().keysConflict(newKey);
+				if (!conflict) {
+					globalSettings.getKeyCollection().editKey(newKey);
 
-				Platform.runLater(() -> ((Stage) scene.getWindow()).close());
+					shortcutLabel.setText(currentKey.toString());
+					Platform.runLater(() -> ((Stage) scene.getWindow()).close());
+				} else {
+					showErrorMessage("Konflikt"); // TODO Localize
+				}
 			}
 		});
 
@@ -113,7 +121,8 @@ public class KeysTabViewController extends GlobalSettingsTabViewController {
 
 	@Override
 	public void loadSettings(GlobalSettings settings) {
-		table.getItems().setAll(settings.getKeyCollection().getKeys());
+		keys.setAll(settings.getKeyCollection().getKeys());
+		table.setItems(keys);
 	}
 
 	@Override
@@ -125,7 +134,7 @@ public class KeysTabViewController extends GlobalSettingsTabViewController {
 	public boolean needReload() {
 		return true;
 	}
-	
+
 	@Override
 	public void reload(GlobalSettings settings, Project project, IMainViewController controller) {
 		controller.loadKeybinding(settings.getKeyCollection());
@@ -142,4 +151,15 @@ public class KeysTabViewController extends GlobalSettingsTabViewController {
 		return "Keyboard (I18N)";
 	}
 
+	private void search() {
+		FilteredList<Key> filteredData = new FilteredList<>(keys, s -> true);
+		String search = searchTextField.getText();
+		if (search == null || search.length() == 0) {
+			filteredData.setPredicate(s -> true);
+		} else {
+			GlobalSettings globalSettings = PlayPadPlugin.getImplementation().getGlobalSettings();
+			filteredData.setPredicate(s -> globalSettings.getKeyCollection().getName(s.getId()).toLowerCase().startsWith(search.toLowerCase()));
+		}
+		table.setItems(filteredData);
+	}
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java
index 8e41c287a6439f0f5515cfde3c3ca5820831a32b..a547fc2c93e395e6ca203ac50c0e39315b7681dd 100644
--- a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java
+++ b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeyCollection.java
@@ -46,7 +46,7 @@ public class KeyCollection {
 
 	public boolean keysConflict(Key key) {
 		for (Key k : keys.values()) {
-			if (k.getKeyCode().equals(key)) {
+			if (k.getKeyCode().equals(key.getKeyCode())) {
 				return true;
 			}
 		}
@@ -92,9 +92,7 @@ public class KeyCollection {
 
 						String name = loadName(keyElement, bundle);
 						Key key = keySerializer.loadElement(keyElement);
-						
-						System.out.println(key);
-						
+
 						names.put(key.getId(), name);
 						register(key);
 					}
@@ -112,4 +110,14 @@ public class KeyCollection {
 		}
 		return null;
 	}
+
+	public void editKey(Key newKey) {
+		Key savedKey = getKey(newKey.getId());
+
+		savedKey.setAlt(newKey.isAlt());
+		savedKey.setCtrl(newKey.isCtrl());
+		savedKey.setMeta(newKey.isMeta());
+		savedKey.setShift(newKey.isShift());
+		savedKey.setKey(newKey.getKey());
+	}
 }