diff --git a/android/gradle.properties b/android/gradle.properties
index 14eed3944b547f02179b1b42f4b601f91b7957c0..aa51064abebb79ba519e600afb7af23779154d4e 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.0.4
-app.versionCode=4
+app.versionName=0.0.5
+app.versionCode=5
diff --git a/assets/icons/game_fail.png b/assets/icons/game_fail.png
new file mode 100644
index 0000000000000000000000000000000000000000..155f9118fde35f06a8b84ed7fbf24b66e9d70e99
Binary files /dev/null and b/assets/icons/game_fail.png differ
diff --git a/icons/build_game_icons.sh b/icons/build_game_icons.sh
index 2c7d70c5b1932be4b1b50bd47b1fc6ee08a80013..e6aa241e2abeb140eae41e7042fe4b9c096e580f 100755
--- a/icons/build_game_icons.sh
+++ b/icons/build_game_icons.sh
@@ -58,6 +58,7 @@ function build_icon_for_skin() {
 build_icon ${CURRENT_DIR}/button_back.svg   ${BASE_DIR}/assets/icons/button_back.png
 build_icon ${CURRENT_DIR}/button_help.svg   ${BASE_DIR}/assets/icons/button_help.png
 build_icon ${CURRENT_DIR}/button_start.svg  ${BASE_DIR}/assets/icons/button_start.png
+build_icon ${CURRENT_DIR}/game_fail.svg     ${BASE_DIR}/assets/icons/game_fail.png
 build_icon ${CURRENT_DIR}/game_win.svg      ${BASE_DIR}/assets/icons/game_win.png
 build_icon ${CURRENT_DIR}/key.svg           ${BASE_DIR}/assets/icons/key.png
 
diff --git a/icons/game_fail.svg b/icons/game_fail.svg
new file mode 100644
index 0000000000000000000000000000000000000000..2922fd7adc2bd2e813836c728f095376c73d4143
--- /dev/null
+++ b/icons/game_fail.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg enable-background="new 0 0 100 100" version="1.1" viewBox="0 0 93.665 93.676" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><rect x=".44662" y=".89101" width="92.772" height="91.894" ry="11.689" fill="#d11717" stroke="#fff" stroke-width=".238"/><path d="m71.624 59.304c3.5089 3.5089 3.5089 9.0561 0 12.565-1.6976 1.6976-3.9623 2.6034-6.2261 2.6034s-4.5275-0.90569-6.2261-2.6034l-12.452-12.452-12.452 12.452c-1.6976 1.6976-3.9623 2.6034-6.2261 2.6034s-4.5275-0.90569-6.2261-2.6034c-3.5089-3.5089-3.5089-9.0561 0-12.565l12.452-12.452-12.452-12.452c-3.5089-3.5089-3.5089-9.0561 0-12.565s9.0561-3.5089 12.565 0l12.452 12.452 12.452-12.452c3.5089-3.5089 9.0561-3.5089 12.565 0s3.5089 9.0561 0 12.565l-12.452 12.452z" fill="#e7e7e7" stroke-width=".20213"/></svg>
diff --git a/lib/layout/game.dart b/lib/layout/game.dart
index d305e996640752ea4e371a1174993d8b96c49ad3..8f7de8271948865ff67811b1a0168cc7c4351b2c 100644
--- a/lib/layout/game.dart
+++ b/lib/layout/game.dart
@@ -10,7 +10,7 @@ import '../utils/game_utils.dart';
 class Game {
 
   static Container buildGameWidget(Data myProvider) {
-    bool gameIsFinished = GameUtils.isGameFinished(myProvider);
+    bool gameIsFinished = myProvider.isGameFinished();
 
     return Container(
       child: Column(
@@ -27,8 +27,8 @@ class Game {
     );
   }
 
-  static TextButton buildRestartGameButton(Data myProvider) {
-    return TextButton(
+  static FlatButton buildRestartGameButton(Data myProvider) {
+    return FlatButton(
       child: Container(
         child: Image(
           image: AssetImage('assets/icons/button_back.png'),
@@ -40,10 +40,15 @@ class Game {
   }
 
   static Container buildEndGameMessage(Data myProvider) {
+    String decorationImageAssetName = '';
+    if (myProvider.gameWon) {
+      decorationImageAssetName = 'assets/icons/game_win.png';
+    } else {
+      decorationImageAssetName = 'assets/icons/game_fail.png';
+    }
+
     Image decorationImage = Image(
-      image: AssetImage(
-        'assets/icons/game_win.png'
-      ),
+      image: AssetImage(decorationImageAssetName),
       fit: BoxFit.fill
     );
 
diff --git a/lib/layout/parameters.dart b/lib/layout/parameters.dart
index 3a2ae03a6290e298620d7af2fed7aec3b3b674de..a151ad0d59aa60df85456118c0a5017402bd6b2c 100644
--- a/lib/layout/parameters.dart
+++ b/lib/layout/parameters.dart
@@ -48,7 +48,7 @@ class Parameters {
               decorationImage,
               Column(
                 children: [
-                  TextButton(
+                  FlatButton(
                     child: Container(
                       child: Image(
                         image: AssetImage('assets/icons/button_start.png'),
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
index 7d87dc85b5429c885ad0917b4db57f4526de62ca..e69231893ba01e195837778a6900a19769dd2ca8 100644
--- a/lib/provider/data.dart
+++ b/lib/provider/data.dart
@@ -26,6 +26,7 @@ class Data extends ChangeNotifier {
 
   // Game data
   bool _gameIsRunning = false;
+  bool _foundWord = false;
   String _word = '';
   final int _recentWordsCount = 20;
   List _recentWords = [];
@@ -79,6 +80,7 @@ class Data extends ChangeNotifier {
         print('wrong');
       } else {
         print('ok found');
+        _foundWord = true;
       }
       addGuess(_currentGuess);
       notifyListeners();
@@ -95,6 +97,8 @@ class Data extends ChangeNotifier {
     _currentGuess = '';
   }
 
+  bool get gameWon => _foundWord;
+
   getParameterValue(String parameterCode) {
     switch(parameterCode) {
       case 'lang': { return _lang; }
@@ -151,6 +155,16 @@ class Data extends ChangeNotifier {
     notifyListeners();
   }
 
+  bool isGameFinished() {
+    print('isGameFinished');
+
+    if (_foundWord || (_guesses.length > (_maxGuessesCount - 1))) {
+      return true;
+    }
+
+    return false;
+  }
+
   String get word => _word;
 
   void updateWord(String word) {
@@ -170,6 +184,7 @@ class Data extends ChangeNotifier {
     _word = '';
     _guesses = [];
     _currentGuess = '';
+    _foundWord = false;
     notifyListeners();
   }
 
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 03c6cd9269447ebc9e494f5526305d09edcb8524..1381d16b440973da96a90597717c719d2a262b58 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -31,7 +31,7 @@ class _HomeState extends State<Home> {
 
     if (myProvider.gameIsRunning) {
       menuActions = [
-        TextButton(
+        FlatButton(
           child: Container(
             decoration: BoxDecoration(
               borderRadius: BorderRadius.circular(4),
diff --git a/lib/utils/game_utils.dart b/lib/utils/game_utils.dart
index 5fb4c00fa7f5aea8a972d97ab120dcdcab87c83a..ec5d24adc5d138c91ee826cd4840c4d11beb86f9 100644
--- a/lib/utils/game_utils.dart
+++ b/lib/utils/game_utils.dart
@@ -125,15 +125,4 @@ class GameUtils {
     return RandomPickWord.checkWordExists(guessedWord);
   }
 
-  static bool isGameFinished(Data myProvider) {
-    print('isGameFinished');
-
-    if (myProvider.guesses.length > 0) {
-      if (myProvider.guesses[myProvider.guesses.length - 1] == myProvider.word) {
-        return true;
-      }
-    }
-    return false;
-  }
-
 }