diff --git a/src/actions/converter.py b/src/actions/converter.py
index 694bc09999d01903fff0ecb52b54348bd22e286c..745b26f43539251524b09f5111518d6783b87aec 100644
--- a/src/actions/converter.py
+++ b/src/actions/converter.py
@@ -72,7 +72,7 @@ async def replace_currency(event):
     response_json = current_currency.json()
     currencies = response_json["Valute"]
     groups = re.findall(CURRENCY_PATTERN, event.message.message)
-    response = "**Полагаясь на текщий курс валют могу сказать следующее:**\n\n"
+    response = "**Полагаясь на текущий курс валют могу сказать следующее:**\n\n"
     currency_mapper = []
     for group in groups:
         scientific = False
diff --git a/src/actions/replies.py b/src/actions/replies.py
index 1df60a16a340faf8d69ea04d0230a509d40ff036..165e5b1b179693750be91cbc1aeb6b7aef37d02d 100644
--- a/src/actions/replies.py
+++ b/src/actions/replies.py
@@ -3,7 +3,7 @@ import random
 import re
 
 from src.config import config
-from src.utils.responses import mark_unread
+from src.utils.responses import check_if_only_smiles, mark_unread
 from telethon import events
 
 logger = logging.getLogger(__name__)
@@ -34,7 +34,9 @@ async def hello(event):
     await event.respond(random.choice(["Здравствуте!", "Добрый день!", "Приветствую."]))
 
 
-@config.telegram_client.on(events.NewMessage(pattern=r"^\)+\.?$", outgoing=False))
+@config.telegram_client.on(
+    events.NewMessage(pattern=check_if_only_smiles, outgoing=False)
+)
 @mark_unread
 async def smile(event: events.NewMessage.Event):
     await event.respond(event.message.message)
diff --git a/src/actions/speller.py b/src/actions/speller.py
index 856daa8c8df14d47d41f0ad348a96a0b37f3deb6..db0b093cccfdc95cc0d33af9794952990728271f 100644
--- a/src/actions/speller.py
+++ b/src/actions/speller.py
@@ -8,7 +8,9 @@ def check_missing_dot(message: str):
         return False
     if all([x in ")(0" for x in message]):
         return False
-    return not message.endswith((".", "?", "!")) and not message.startswith(".")
+    return not message.endswith((".", ":", ";", "?", "!")) and not message.startswith(
+        "."
+    )
 
 
 def check_spell(message: str):
diff --git a/src/utils/responses.py b/src/utils/responses.py
index e94d0f0bb9799e9d542aa0d971dcc073d6344c2d..8da577252956fdf3f59fad01967fa9ca33da76ae 100644
--- a/src/utils/responses.py
+++ b/src/utils/responses.py
@@ -72,3 +72,7 @@ def mark_unread(f):
         functions.messages.MarkDialogUnreadRequest(chat, unread=True)
 
     return wrapper
+
+
+def check_if_only_smiles(message: str):
+    return all([x in ")0." for x in message])