diff --git a/QtMeshViewer/Source/GeometryEngine.cpp b/QtMeshViewer/Source/GeometryEngine.cpp
index 9c7e13307ccc106e7a8445a2402b6a25aaab710d..ca81f29533947e2753541d388d2515fb2246024f 100644
--- a/QtMeshViewer/Source/GeometryEngine.cpp
+++ b/QtMeshViewer/Source/GeometryEngine.cpp
@@ -107,6 +107,7 @@ void GeometryEngine::loadFile(const char* filePath)
 	}
 	catch (std::invalid_argument e)
 	{
+		clearData();
 		emit sendMessage(QString(e.what()), 2);
 	}
 }
@@ -126,7 +127,7 @@ void GeometryEngine::loadTexture(const char* filePath, const char* fileName)
 		img = loadTga((std::string(filePath) + std::string(fileName)).c_str(), loadSuccess);
 
 	//TODO: emit if not successfull
-	if (loadSuccess)
+	if (!loadSuccess)
 	{
 		QString msg = "WARNING: texture not found or corrupted: ";
 		msg += QString(fileName);
@@ -205,6 +206,7 @@ void GeometryEngine::drawGeometry(QOpenGLShaderProgram *program)
 
 	for (auto& it : m_drawList)
 	{
+		Q_ASSERT(!m_textures.isEmpty());
 		// bind the correct texture
 		if (it.textureIndex < m_textures.size())
 			m_textures.at(it.textureIndex)->bind();
diff --git a/QtMeshViewer/Source/MainWindow.cpp b/QtMeshViewer/Source/MainWindow.cpp
index 181463a35e2f2c763ccaa1c5bfc7c0b29486b4bd..b4ca5b22b227849d7da3a06bb73d9e7cf449d468 100644
--- a/QtMeshViewer/Source/MainWindow.cpp
+++ b/QtMeshViewer/Source/MainWindow.cpp
@@ -122,7 +122,7 @@ void MainWindow::aboutTool()
 
 void MainWindow::printMessage(QString message, int severity)
 {
-	if (severity < m_curSeverity)
+	if (!ui->statusBar->currentMessage().isEmpty() && severity < m_curSeverity)
 		return;
 
 	m_curSeverity = severity;