diff --git a/src/main/java/complexityparser/Model.java b/src/main/java/complexityparser/Model.java
index aac73034d1a3a74889bb795f5421fe9db9c8dfdf..6af99504eb3b54272ee82187a4b7dcab49e5cbbb 100644
--- a/src/main/java/complexityparser/Model.java
+++ b/src/main/java/complexityparser/Model.java
@@ -56,6 +56,7 @@ public class Model extends Observable {
     private String output;
     private String error;
     private Tier result;
+    private boolean syntaxError = false;
 
     public Model() {
 	//The default Java program is below and in default.java
@@ -82,6 +83,14 @@ public class Model extends Observable {
         return result;
     }
 
+    public boolean getSyntaxError() {
+        return syntaxError;
+    }
+
+    public void setSyntaxError(boolean syntaxError) {
+        this.syntaxError = syntaxError;
+    }
+
     /**
      *
      * @return a java swing component representing a graphical view of the ANTLR generated tree.
diff --git a/src/main/java/lib/graph/Pair.java b/src/main/java/lib/graph/Pair.java
index 67faa354bf65ed5727419b7d4cf59157d7a5b6bf..fc2ff9df8edd8ad77ff319d664bc64bd43c1b26c 100644
--- a/src/main/java/lib/graph/Pair.java
+++ b/src/main/java/lib/graph/Pair.java
@@ -20,7 +20,7 @@ import java.util.Iterator;
 
 /**
  * A pair associating a node number to an iterator corresponding to existing connections
- * used only during the DFS inside the Graph class
+ * used only during the DFS performed inside the Graph class.
  */
 public class Pair {
     private int first;
diff --git a/src/main/java/view/EditorView.java b/src/main/java/view/EditorView.java
index 851d96b889f0212ee4f874a8de79c632bc7120a1..eaa6768033015ab38c65424957bdf2de1a26c888 100644
--- a/src/main/java/view/EditorView.java
+++ b/src/main/java/view/EditorView.java
@@ -53,11 +53,14 @@ public class EditorView extends JPanel {
         Action action = new AbstractAction() {
             @Override
             public void actionPerformed(ActionEvent actionEvent) {
-		try{                
+		try{
+		    m.setSyntaxError(false);                
 		    String code = area.getText();
                	    m.setCode(code);
 		} catch (IndexOutOfBoundsException e){
-		    area.setText(area.getText()+" \n !!! Syntax error !!! ");
+		    area.setText(area.getText());
+		    m.setSyntaxError(true);
+		    m.update();
 		}
             }
         };
@@ -78,6 +81,7 @@ public class EditorView extends JPanel {
                 if(JFileChooser.APPROVE_OPTION == fc.showOpenDialog(parent)) {
                     File f = fc.getSelectedFile();
                     try {
+		        m.setSyntaxError(false);
                         byte[] res = Files.readAllBytes(f.toPath());
                         String txt = new String(res, StandardCharsets.UTF_8);
                         area.setText(txt);
@@ -86,7 +90,9 @@ public class EditorView extends JPanel {
                     } catch (IOException e) {
                         e.printStackTrace();
                     } catch (IndexOutOfBoundsException e){
-			area.setText(area.getText()+" \n !!! Syntax error !!! ");
+			area.setText(area.getText());
+			m.setSyntaxError(true);
+			m.update();
 		   }
                 }
             }
diff --git a/src/main/java/view/MessageView.java b/src/main/java/view/MessageView.java
index d2a0ee52cafb1fb73239ca465ea72faf3a0ffedc..5366e76152c3c1221b7ea1e063793ceb75ce0330 100644
--- a/src/main/java/view/MessageView.java
+++ b/src/main/java/view/MessageView.java
@@ -29,9 +29,9 @@ public class MessageView extends JScrollPane implements Observer {
     private JTextArea area;
     private Model m;
 
-    public void setArea(JTextArea area){
-	this.area= area;
-    }	
+ //   public void setTextArea(String txt){
+//	this.area = new TextArea(txt);
+ //   }	
 
     public MessageView(Model m) {
         m.addObserver(this);
@@ -46,20 +46,24 @@ public class MessageView extends JScrollPane implements Observer {
     }
 
     @Override
-    public void update(Observable m) {
+    public void update(Observable o) {
         StringBuilder str = new StringBuilder();
-        String out = this.m.getOutput();
-        String err = this.m.getError();
-        str.append("Output:\n\n");
-        str.append(out);
-        if(!err.equals("")) {
-            str.append("\n-------------------------------------------------\nErrors:\n\n");
-            str.append(this.m.getError());
-        }
-        str.append("\n-------------------------------------------------\n");
-        str.append("Final result: ");
-        str.append(this.m.getResult());
-        str.append("\n");
+        String out = m.getOutput();
+        String err = m.getError();
+	if(m.getSyntaxError()){
+	    str.append("\n SYNTAX ERROR : This is not a syntactically correct Java \n program.\n");
+	}else{	
+            str.append("Output:\n\n");
+            str.append(out);
+            if(!err.equals("")) {
+                str.append("\n-------------------------------------------------\nErrors:\n\n");
+                str.append(m.getError());
+            }
+            str.append("\n-------------------------------------------------\n");
+            str.append("Final result: ");
+            str.append(m.getResult());
+            str.append("\n");
+	}
         area.setText(str.toString());
     }
 }
\ No newline at end of file
diff --git a/src/main/java/view/TreePanel.java b/src/main/java/view/TreePanel.java
index 5e92fe7522cdf91c9b54be26feabfebea1a0d3cb..90f91f1655628c7f36b0258cf11755d3d8e31766 100644
--- a/src/main/java/view/TreePanel.java
+++ b/src/main/java/view/TreePanel.java
@@ -49,7 +49,12 @@ public class TreePanel extends JScrollPane implements Observer {
     @Override
     public void update(Observable m) {
         Model model = (Model) m;
-        viewr = model.getTreeComponent();
+	if(model.getSyntaxError()){
+            viewr = new TreeViewer(null,null);
+	}
+	else{
+       	    viewr = model.getTreeComponent();          
+	}
         setViewportView(viewr);
     }
 }
\ No newline at end of file