diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,15 @@
 # Changelog for S.P.A.D.E
 
 ## Unreleased changes
+
+## 0.1.0.5
+* Fix bug that caused the ide to freeze when the loaded program is run for
+  second time.
+* Hide autocomplete window as soon as the only suggestion is the same as
+  search key.
+
+## 0.1.0.4
+* Fix regression that caused step debugging to freeze the ui.
+
+## 0.1.0.3
+* Initial proper release
diff --git a/spade.cabal b/spade.cabal
--- a/spade.cabal
+++ b/spade.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           spade
-version:        0.1.0.4
+version:        0.1.0.5
 synopsis:       A simple programming and debugging environment.
 description:    A simple weakly typed, dynamic, interpreted programming langauge and terminal IDE.
 category:       language, interpreter, ide
diff --git a/src/IDE/IDE.hs b/src/IDE/IDE.hs
--- a/src/IDE/IDE.hs
+++ b/src/IDE/IDE.hs
@@ -296,7 +296,7 @@
                 -- Reset IDE debuggins state
                 void $ atomically $ do
                   readTBQueue debugIn >>= (check . (== Stop)) -- Wait till the stop command
-
+                  void $ takeTMVar interpreterThreadRef
                   modifyTVar ideStateRef
                     (\idestate ->
                         idestate
diff --git a/src/UI/Widgets/Editor.hs b/src/UI/Widgets/Editor.hs
--- a/src/UI/Widgets/Editor.hs
+++ b/src/UI/Widgets/Editor.hs
@@ -537,18 +537,18 @@
         case ewAutocompleteWidget ew' of
           Just (SomeWidgetRef ac) -> do
             key <- getAutoCompleteKey (ewContent ew') (ewCursor ew')
-            if T.null key
-              then do
-                withCapability (DrawableCap ac) $ do
-                  setVisibility ac False
-              else do
-              (ewAutocompleteSuggestions ew) key >>= \case
-                [] -> do
-                  withCapability (DrawableCap ac) $ do
+            withCapability (DrawableCap ac) $ do
+              if T.null key
+                then do
                     setVisibility ac False
-                suggestions@(_:_) -> withCapability (ContainerCap ac (Proxy @[(Text, Text)])) $ do
-                  setContent ac (sortBy (\(a1, _) (a2, _) -> compare (T.length a1) (T.length a2)) suggestions)
-                  withCapability (DrawableCap ac) $ do
+                else do
+                (ewAutocompleteSuggestions ew) key >>= \case
+                  [] -> setVisibility ac False
+                  [s] -> if (fst s) == key
+                    then setVisibility ac False
+                    else pass
+                  suggestions@(_:_) -> withCapability (ContainerCap ac (Proxy @[(Text, Text)])) $ do
+                    setContent ac (sortBy (\(a1, _) (a2, _) -> compare (T.length a1) (T.length a2)) suggestions)
                     setVisibility ac True
             pure ()
           Nothing -> pure ()
