diff --git a/src/Main.java b/src/Main.java
index 7e796c6f7a5b24d0443e921aff88d7c4f518ee48..1aacf21f9d47d0b911b4b539cd9d3011588585fa 100644
--- a/src/Main.java
+++ b/src/Main.java
@@ -3,5 +3,4 @@ public final class Main {
     public static void main(String[] args) {
         gui.App.main(args);
     }
-
 }
diff --git a/src/gui/JenkinsScene.java b/src/gui/JenkinsScene.java
index acf61efab3a14aaea3b905bdb301be60a1e3cf0c..b1aa9a63d3d958db6aaff08125ed8a6233ee0d45 100644
--- a/src/gui/JenkinsScene.java
+++ b/src/gui/JenkinsScene.java
@@ -1,11 +1,17 @@
 package gui;
 
 import javafx.beans.binding.Bindings;
+import javafx.beans.property.BooleanProperty;
 import javafx.beans.property.ObjectProperty;
+import javafx.beans.property.SimpleBooleanProperty;
 import javafx.beans.property.SimpleObjectProperty;
+import javafx.beans.value.ChangeListener;
+import javafx.beans.value.ObservableValue;
+import javafx.geometry.Pos;
 import javafx.scene.Scene;
 import javafx.scene.control.Label;
 import javafx.scene.layout.BorderPane;
+import javafx.scene.layout.HBox;
 import javafx.scene.layout.Pane;
 import javafx.scene.paint.Color;
 import javafx.scene.shape.Rectangle;
@@ -13,6 +19,7 @@ import javafx.scene.text.Text;
 import utils.Parser;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -30,6 +37,9 @@ final class JenkinsScene {
     private final List<boolean[][]> goldenArrays;
     private final List<boolean[][]> buildArrays;
 
+    private final List<Integer> undefinedFramesGold = new ArrayList<>();
+    private final List<Integer> undefinedFramesBuild = new ArrayList<>();
+
     private final Map<Integer, String> inputs;
 
     private final TimeBar timebar;
@@ -37,6 +47,9 @@ final class JenkinsScene {
     private final ObjectProperty<boolean[][]> goldenTab = new SimpleObjectProperty<>();
     private final ObjectProperty<boolean[][]> buildTab = new SimpleObjectProperty<>();
 
+    private final BooleanProperty errorFrameGold = new SimpleBooleanProperty();
+    private final BooleanProperty errorFrameBuild = new SimpleBooleanProperty();
+
     private final BorderPane pane = new BorderPane();
 
     private final Pane golden = new Pane();
@@ -48,20 +61,28 @@ final class JenkinsScene {
         this.gridHeight = gridHeight;
         Parser parser = new Parser(gridWidth, gridHeight);
 
-        this.goldenArrays = parser.parseDisplay(gold);
-        this.buildArrays = parser.parseDisplay(build);
-        this.timebar = new TimeBar(Math.max(goldenArrays.size(), buildArrays.size()) - 1);
+        this.goldenArrays = parser.parseDisplay(gold, undefinedFramesGold);
+        this.buildArrays = parser.parseDisplay(build, undefinedFramesBuild);
+
 
+        undefinedFramesGold.forEach(id -> goldenArrays.add(id, null));
+        undefinedFramesBuild.forEach(id -> buildArrays.add(id, null));
+
+        this.timebar = new TimeBar(Math.max(goldenArrays.size(), buildArrays.size()) - 1);
         this.inputs = parser.parseInputs(build);
 
+        errorFrameGold.bind(timebar.index().map(id -> undefinedFramesGold.contains(id.intValue())));
+        errorFrameBuild.bind(timebar.index().map(id -> undefinedFramesBuild.contains(id.intValue())));
+
+
         goldenTab.bind(timebar.index().map(id -> goldenArrays.get(id.intValue())));
         buildTab.bind(timebar.index().map(id -> buildArrays.get(id.intValue())));
 
-
         initPanes();
 
     }
 
+
     private void initPanes() {
 
         golden.setStyle("-fx-background-color: #efa810");
@@ -88,6 +109,15 @@ final class JenkinsScene {
 
         pane.setTop(timebar);
 
+        Text errorText = new Text("Undefined of 'X' bit detected on this frame");
+        errorText.setStyle("-fx-font-size: 15px; -fx-font-weight: bold");
+        errorText.setLayoutX(App.APP_WIDTH/2d - 150);
+        errorText.setLayoutY(App.APP_HEIGHT - 5);
+
+        errorText.visibleProperty().bind(errorFrameGold.or(errorFrameBuild));
+
+        pane.getChildren().add(errorText);
+
         setGridGroup();
         setInputs(golden);
         setLegend(build);
@@ -158,7 +188,7 @@ final class JenkinsScene {
                 Rectangle buildRect = new Rectangle(22 * i + OFF_SET_X, 22 * j + OFF_SET_Y, 20, 20);
                 Rectangle goldRect = new Rectangle(22 * i + OFF_SET_X, 22 * j + OFF_SET_Y, 20, 20);
 
-                goldRect.visibleProperty().bind(goldenTab.map(goldTab -> goldTab[finalI][finalJ]));
+                goldRect.visibleProperty().bind(goldenTab.map(goldTab -> goldTab != null && goldTab[finalI][finalJ]));
                 goldRect.setFill(Color.BLACK);
                 goldRect.setArcWidth(15);
                 goldRect.setArcHeight(15);
@@ -167,11 +197,14 @@ final class JenkinsScene {
 
 
                 buildRect.visibleProperty().bind(Bindings.createBooleanBinding(
-                        () -> goldenTab.get()[finalI][finalJ] || buildTab.get()[finalI][finalJ],
+                        () ->   goldenTab.get() != null && buildTab.get() != null &&
+                                (goldenTab.get()[finalI][finalJ] || buildTab.get()[finalI][finalJ]),
                         goldenTab, buildTab));
 
                 buildRect.fillProperty().bind(Bindings.createObjectBinding(
                         () -> {
+                            if (goldenTab.get() == null || buildTab.get() == null)
+                                return Color.TRANSPARENT;
                             boolean goldV = goldenTab.get()[finalI][finalJ];
                             boolean buildV = buildTab.get()[finalI][finalJ];
                             if (!goldV && buildV) return TO_MUCH_COLOR;
diff --git a/src/gui/ModelSimScene.java b/src/gui/ModelSimScene.java
index e2634f15fc19d716541033223e9b41c89dd86bd5..d23ef28da05f75e80a6c3b50c7262fef99eacb8f 100644
--- a/src/gui/ModelSimScene.java
+++ b/src/gui/ModelSimScene.java
@@ -2,11 +2,8 @@ package gui;
 
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.SimpleObjectProperty;
-import javafx.geometry.Pos;
 import javafx.scene.layout.AnchorPane;
-import javafx.scene.layout.BorderPane;
 import javafx.scene.layout.Pane;
-import javafx.scene.layout.StackPane;
 import javafx.scene.paint.Color;
 import javafx.scene.shape.Rectangle;
 import utils.Parser;
@@ -66,7 +63,7 @@ final class ModelSimScene {
 
                 Rectangle modelsimRect = new Rectangle(22*i + 300, 22*j + 100, 20, 20);
 
-                modelsimRect.visibleProperty().bind(modelSimTab.map(modelTab -> modelTab[finalI][finalJ]));
+                modelsimRect.visibleProperty().bind(modelSimTab.map(modelTab -> modelTab != null && modelTab[finalI][finalJ]));
                 modelsimRect.setFill(Color.BLACK);
                 modelsimRect.setArcWidth(15);
                 modelsimRect.setArcHeight(15);
diff --git a/src/utils/Parser.java b/src/utils/Parser.java
index 76ea7b1c425580cb56ae67f0f52602970fe667c1..215ff51c32d7774af4963e5a3b936e1ede0f477e 100644
--- a/src/utils/Parser.java
+++ b/src/utils/Parser.java
@@ -1,10 +1,7 @@
 package utils;
 
 import java.io.*;
-import java.util.HashMap;
-import java.util.HexFormat;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
@@ -16,19 +13,26 @@ public final class Parser {
     private final int height;
 
     private final static Pattern PATTERN_OUT = Pattern.compile("^((# )?\\d+:)");
+    private final static Pattern HEX_PATTERN = Pattern.compile("(# )?\\d+:[0-9a-fA-F]+");
     private final static Pattern PATTERN_IN = Pattern.compile("^(# \\d+->)");
+    private final static Pattern MODELSIM_PATTERN = Pattern.compile("([0-1]+  \\+[0-1]+ [0-1]+( )?)$");
 
     public Parser(int width, int height) {
         this.width = width;
         this.height = height;
     }
 
-    public List<boolean[][]> parseDisplay(String path) throws IOException {
+    public List<boolean[][]> parseDisplay(String path, List<Integer> errorFrames) throws IOException {
         try (BufferedReader br = new BufferedReader(
                 new InputStreamReader(
                         new FileInputStream(path), UTF_8))) {
 
-            return br.lines().filter(str -> PATTERN_OUT.matcher(str).lookingAt())
+            return  br.lines()
+                    .filter(str -> PATTERN_OUT.matcher(str).lookingAt())
+                    .peek(str -> {
+                        if (!HEX_PATTERN.matcher(str).matches()) errorFrames.add(Integer.parseInt(str.split(":")[0]
+                                .replace("# ", "")));})
+                    .filter(str -> HEX_PATTERN.matcher(str).matches())
                     .map(this::toBoolArray)
                     .collect(Collectors.toList());
         }