diff --git a/src/ncmpcpp.cpp b/src/ncmpcpp.cpp
index 17dda448..7aa4d578 100644
--- a/src/ncmpcpp.cpp
+++ b/src/ncmpcpp.cpp
@@ -2974,62 +2974,151 @@ int main(int argc, char *argv[])
}
else if (Keypressed(input, Key.FindForward) || Keypressed(input, Key.FindBackward))
{
- if ((current_screen != csHelp && current_screen != csSearcher)
- || (current_screen == csSearcher && !mSearcher->Current().first))
+ if ((current_screen == csHelp
+ || current_screen == csSearcher
+ || current_screen == csTinyTagEditor
+ || wCurrent == mEditorTagTypes)
+ && (current_screen != csSearcher
+ || mSearcher->Current().first))
+ continue;
+
+ string how = Keypressed(input, Key.FindForward) ? "forward" : "backward";
+ found_pos = -1;
+ vFoundPositions.clear();
+ LockStatusbar();
+ Statusbar() << "Find " << how << ": ";
+ string findme = wFooter->GetString();
+ UnlockStatusbar();
+ timer = time(NULL);
+ if (findme.empty())
+ continue;
+ ToLower(findme);
+
+ ShowMessage("Searching...");
+ List *mList = reinterpret_cast