diff --git a/src/main/java/projekt/enigma/App.java b/src/main/java/projekt/enigma/App.java
index 2e97208367f7280086e9b398514f64729c03c610..249e13c9ef79c1d500911be49936702e4d6d2f3b 100644
--- a/src/main/java/projekt/enigma/App.java
+++ b/src/main/java/projekt/enigma/App.java
@@ -1,7 +1,6 @@
 package projekt.enigma;
 
 import javafx.application.Application;
-import javafx.event.EventHandler;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
 import javafx.scene.Scene;
@@ -9,7 +8,6 @@ import javafx.scene.control.Button;
 import javafx.scene.control.Label;
 import javafx.scene.control.TextField;
 import javafx.scene.input.KeyCode;
-import javafx.scene.input.KeyEvent;
 import javafx.scene.layout.VBox;
 import javafx.stage.Stage;
 import projekt.enigma.model.Fehler;
@@ -25,85 +23,64 @@ public class App extends Application {
 
 	private static String kenngruppe;
 	private static GuiController gc;
-    private static int debug;
-    Scene sce1, sce2;
-
-	private static Parent loadFXML(String fxml) throws IOException {
-	    FXMLLoader fxmlLoader = new FXMLLoader(App.class.getResource(fxml + ".fxml"));
-        Parent result = fxmlLoader.load();
-
-		if (fxml.equals("gui")) {
-			gc = fxmlLoader.getController();
-            gc.setKenngruppe(kenngruppe);
-		}
-
-		return result;
-	}
+	private static int debug;
 
 	public static void main(String[] args) {
-	    debug = 1;
+		debug = 1;
 		launch(args);
 	}
 
-    public static int getDebug() {
-        return debug;
-    }
-
-    public static void setDebug(int debug) {
-        App.debug = debug;
-    }
+	public static int getDebug() {
+		return debug;
+	}
 
-    @Override
+	@Override
 	public void start(Stage primaryStage) throws IOException {
 
 		primaryStage.setTitle("Kenngruppenabfrage");
 
-		//Scene 1
 		Label label1 = new Label("Bitte Kenngruppe eingeben!");
 		label1.setTranslateX(55);
 		Label l1 = new Label("");
 		Label l2 = new Label("");
 		TextField tfield = new TextField();
 		Button button1 = new Button("Kenngruppe setzen!");
+		VBox layout1 = new VBox();
 
-
-	    VBox layout1 = new VBox();
-
-	    tfield.setOnKeyPressed(e -> {
-		    if (e.getCode() == KeyCode.ENTER)  {
-			    if(enter(tfield.getText())) {
-			    	kenngruppe = tfield.getText();
-
-				    try {
-					    primaryStage.setScene(new Scene(loadFXML("gui"), 962, 677));
-				    } catch (IOException ex) {
-					    ex.printStackTrace();
-				    }
-			    } else {
-				    tfield.setStyle("-fx-background-color:#FF0000");
-				    tfield.setText("Fehlerhafte Kenngruppe!");
-			    }
-		    }
-	    });
+		layout1.getChildren().addAll(label1, l1, tfield, l2, button1);
+		Scene sceKenngruppe = new Scene(layout1, 234, 137);
+
+		FXMLLoader guiLoader = new FXMLLoader(App.class.getResource("gui.fxml"));
+
+		Scene sceApp = new Scene(guiLoader.load(), 962, 677);
+
+		tfield.setOnKeyPressed(e -> {
+			if (e.getCode() == KeyCode.ENTER) {
+				if (enter(tfield.getText())) {
+					gc = guiLoader.getController();
+					gc.setKenngruppe(tfield.getText());
+					primaryStage.setScene(sceApp);
+				} else {
+					tfield.setText("");
+					new Fehler().showErrorDialog("error", "Kenngruppe falsch",
+							"Regeln für die Kenngruppe: max. 8 Zeichen und nur Buchstaben von A-Z.");
+				}
+			}
+		});
 
 		button1.setOnAction(e -> {
-			if(enter(tfield.getText())) {
-				try {
-					primaryStage.setScene(new Scene(loadFXML("gui"), 962, 677));
-				} catch (IOException ex) {
-					ex.printStackTrace();
-				}
+			if (enter(tfield.getText())) {
+				gc = guiLoader.getController();
+				gc.setKenngruppe(tfield.getText());
+				primaryStage.setScene(sceApp);
 			} else {
-				tfield.setStyle("-fx-background-color:#FF0000");
-				tfield.setText("Fehlerhafte Kenngruppe!");
+				tfield.setText("");
+				new Fehler().showErrorDialog("error", "Kenngruppe falsch",
+						"Regeln für die Kenngruppe: 4-8 Zeichen sowie Buchstaben von A-Z.");
 			}
-        });
+		});
 
-		layout1.getChildren().addAll(label1, l1, tfield, l2, button1);
-
-		sce1 = new Scene(layout1, 234, 137);
-
-		primaryStage.setScene(sce1);
+		primaryStage.setScene(sceKenngruppe);
 		primaryStage.show();
 	}
 
@@ -112,20 +89,19 @@ public class App extends Application {
 		String alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 		boolean result = true;
 
-		for (char c :kenngruppe.toUpperCase().toCharArray()) {
+		for (char c : kenngruppe.toUpperCase().toCharArray()) {
 			if (!alphabet.contains(String.valueOf(c))) {
 				result = false;
 				break;
 			}
 		}
-		if (kenngruppe.length() >= 9) {
+		if (kenngruppe.length() > 8 || kenngruppe.length() < 4) {
 			result = false;
 		}
 
 		return result;
 	}
 
-
 //	/**
 //	 * TODO Dokumentieren
 //	 */
diff --git a/src/main/java/projekt/enigma/GuiController.java b/src/main/java/projekt/enigma/GuiController.java
index 6c73b6e4dc8abafb19363c0eb20e27c5fdac6df6..41c9b2b42205d011d49517a73a3fb3031d6ad458 100644
--- a/src/main/java/projekt/enigma/GuiController.java
+++ b/src/main/java/projekt/enigma/GuiController.java
@@ -1,12 +1,24 @@
 package projekt.enigma;
 
+import javafx.concurrent.Task;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
+import javafx.geometry.Insets;
+import javafx.geometry.Pos;
+import javafx.scene.Scene;
 import javafx.scene.control.*;
 import javafx.scene.input.MouseEvent;
+import javafx.scene.layout.Pane;
+import javafx.scene.layout.VBox;
 import javafx.scene.shape.Circle;
+import javafx.scene.text.Text;
+import javafx.stage.Modality;
+import javafx.stage.Stage;
+import javafx.stage.StageStyle;
 import org.apache.http.HttpException;
+import org.controlsfx.dialog.ProgressDialog;
 import projekt.enigma.model.Codierer;
+import projekt.enigma.model.Fehler;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -23,6 +35,7 @@ public class GuiController {
     private boolean resetDisplay;
     private Codierer codierer;
     private char chiffrierterBuchstabe;
+    private String[] empfangeneNachricht;
     //deklariert die benötigten Textfelder
     @FXML
     private TextField tfStecker1, tfStecker2, tfStecker3, tfStecker4, tfStecker5, tfStecker6, tfStecker7, tfStecker8,
@@ -266,7 +279,14 @@ public class GuiController {
      */
     @FXML
     private void gedrueckteTaste(ActionEvent e) {
-        if (e.getSource() == btnSenden && !tfCodiert.getText().equals("")) sendeFunkspruch();
+        if (e.getSource() == btnSenden) {
+        	if(tfCodiert.getText().equals("")) {
+		        new Fehler().showErrorDialog("warning", "Haben Sie heute nichts zu sagen?",
+				        "Nutzung von militärischer Infrastruktur ohne Grund ist verboten.");
+	        } else {
+		        sendeFunkspruch();
+	        }
+        }
         if (e.getSource() == btnEmpfangen) empfangeFunkspruch();
         if (e.getSource() == btnDelete) loeschen();
         if (e.getSource() == btnReset) {
@@ -422,17 +442,16 @@ public class GuiController {
      * sowie den Klartext in das Textfeld tfKlartext. Setzt den Spruchschlüssel
      */
     private void empfangeFunkspruch() {
+        progressDialogue("rx");
 
-        String[] empfangeneNachricht = codierer.empfangeNachricht();
-
-        if (empfangeneNachricht[2] != null) {
+        if (this.empfangeneNachricht[2] != null) {
             setzeTagesSchluessel();
-            tfKlartext.setText(empfangeneNachricht[2]);
-            tfCodiert.setText(empfangeneNachricht[1]);
+            tfKlartext.setText(this.empfangeneNachricht[2]);
+            tfCodiert.setText(this.empfangeneNachricht[1]);
             resetDisplay = true;
 
             // Spruchschluessel in das Feld lblSpruchschluessel schreiben
-            lblSpruchschluessel.setText(codierer.empfangenerSpruchschluessel(empfangeneNachricht[2]));
+            lblSpruchschluessel.setText(codierer.empfangenerSpruchschluessel(this.empfangeneNachricht[2]));
         }
     }
 
@@ -441,16 +460,48 @@ public class GuiController {
      * Löscht die Textfelder tfKlartext und tfCodiert
      */
     private void sendeFunkspruch() {
-
-    	this.tfKlartext.setText("");
+        this.tfKlartext.setText("");
         this.tfCodiert.setText("");
 
-        try {
-            this.codierer.sendeNachricht();
-        } catch (HttpException | IOException e) {
-            e.printStackTrace();
-        }
+        progressDialogue("tx");
+    }
+    private void progressDialogue(String strRxTx) {
+        Task copyWorker = createWorker(strRxTx);
+
+        ProgressDialog dialog = new ProgressDialog(copyWorker);
+        dialog.initStyle(StageStyle.TRANSPARENT);
+        dialog.setGraphic(null);
+        dialog.initStyle(StageStyle.TRANSPARENT);
+        dialog.setTitle("Kommunikation zum Funkraum");
+        if(strRxTx.equals("rx")) {
+            dialog.setContentText("Empfange Nachricht");
+        } else if(strRxTx.equals("tx")) {
+            dialog.setContentText("Sende Nachricht");
+        }
+        dialog.setHeaderText(null);
+        dialog.setGraphic(null);
+        dialog.initStyle(StageStyle.UTILITY);
+        new Thread(copyWorker).start();
+        dialog.showAndWait();
+    }
 
+    public Task createWorker(String strRxTx) {
+        return new Task() {
+            @Override
+            protected Object call() throws Exception {
+                if(strRxTx.equals("rx")) {
+                    empfangeneNachricht = codierer.empfangeNachricht();
+                } else if(strRxTx.equals("tx")) {
+                    try {
+                        codierer.sendeNachricht();
+                    } catch (HttpException | IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+
+                return true;
+            }
+        };
     }
 
     /**
diff --git a/src/main/java/projekt/enigma/model/Codierer.java b/src/main/java/projekt/enigma/model/Codierer.java
index 136ab25a2e104eeeeb40f940d1950f7b3426ed71..9a6a3d76a73dad16ab5adc3d8959c821fbab60b6 100644
--- a/src/main/java/projekt/enigma/model/Codierer.java
+++ b/src/main/java/projekt/enigma/model/Codierer.java
@@ -66,9 +66,6 @@ public class Codierer {
 
 		this.codebuch = new Codebuch();
 		this.codebuch.fetchTagesschluessel();
-
-		/*this.funk = new Thread(new ThreadFunkraum(this.kenngruppe));
-		funk.start();*/
 	}
 	//endregion
 
@@ -162,10 +159,6 @@ public class Codierer {
 		// Abrufen der letzten Nachricht, für unsere Kenngruppe, aus dem Funkraum
 		String[] codierteNachricht = new Funkraum().empfangeFunkspruch(this.kenngruppe);
 
-		new Fehler().debug(String.valueOf(codierteNachricht.length), false);
-		new Fehler().debug(codierteNachricht[0], false);
-		new Fehler().debug(codierteNachricht[1], false);
-
 		// Prüfen ob Nachrichtenlänge > 1 und die codierte Nachricht mehr als drei Felder (" ") hat
 		if (codierteNachricht[1] != null && codierteNachricht[1].split(" ").length > 3) {
 			// Den Tag der Nachricht speichern
@@ -457,7 +450,6 @@ public class Codierer {
 	//endregion
 
 	//region Sonstige
-
 	/**
 	 * Prüft ob der Port auf den das Kabel gesteckt werden soll, noch frei ist.
 	 * <p>
diff --git a/src/main/java/projekt/enigma/model/Fehler.java b/src/main/java/projekt/enigma/model/Fehler.java
index 2dfedd46bfc32b333bf0a8997f08de0419399461..91be2029189ae809cb4f8c3f7f6c605d9a44135c 100644
--- a/src/main/java/projekt/enigma/model/Fehler.java
+++ b/src/main/java/projekt/enigma/model/Fehler.java
@@ -35,7 +35,7 @@ public class Fehler {
 			case "warning":
 				alert = new Alert(AlertType.WARNING);
 				break;
-			case "information":
+			case "info":
 				alert = new Alert(AlertType.INFORMATION);
 				break;
 			case "error":
diff --git a/src/main/java/projekt/enigma/model/Funkraum.java b/src/main/java/projekt/enigma/model/Funkraum.java
index d1096f0b8f6541fe951740723084326ec6466266..3310b32c5a145e4adadcb6fa73314b1d7f6731f6 100644
--- a/src/main/java/projekt/enigma/model/Funkraum.java
+++ b/src/main/java/projekt/enigma/model/Funkraum.java
@@ -69,7 +69,7 @@ public class Funkraum {
 			new Fehler().showErrorDialog("error", "HTTP Post war nicht erfolgreich",
 					"Bitte wenden Sie sich an ihren Vorgesetzten.");
 		} catch (NullPointerException e) {
-			new Fehler().showErrorDialog("error", "Keiner schreibt dir...",
+			new Fehler().showErrorDialog("info", "Keiner schreibt dir...",
 					"Es liegen keine neuen Nachrichten im Funkraum für Sie vor.");
 		}