diff --git a/src/actions/basic.py b/src/actions/basic.py
index a62a539b219afc1ba6d341ceacbd758837477bce..4462dfd70009463efd0fbe68071022d4fd3ad4e0 100644
--- a/src/actions/basic.py
+++ b/src/actions/basic.py
@@ -5,11 +5,13 @@ import pytz
 from telethon import events
 
 from src.config import config
+from src.utils.responses import mark_unread
 
 logger = logging.getLogger(__name__)
 
 
 @config.telegram_client.on(events.NewMessage(pattern="^.h$"))
+@mark_unread
 async def show_help(event):
     with open("./static_messages/help.txt") as f:
         contents = f.read()
@@ -17,6 +19,7 @@ async def show_help(event):
 
 
 @config.telegram_client.on(events.NewMessage(pattern="^.ci"))
+@mark_unread
 async def ci(event):
     with open("./static_messages/app.info") as f:
         contents = f.read()
@@ -24,6 +27,7 @@ async def ci(event):
 
 
 @config.telegram_client.on(events.NewMessage(pattern="^.t$"))
+@mark_unread
 async def show_time(event):
     tz = pytz.timezone("Europe/Moscow")
     now = datetime.utcnow()
@@ -33,6 +37,7 @@ async def show_time(event):
 
 
 @config.telegram_client.on(events.NewMessage(pattern=".*@all.*", forwards=False))
+@mark_unread
 async def mention_all(event: events.NewMessage.Event):
     if event.is_group:
         chat = await event.get_chat()
diff --git a/src/actions/fun.py b/src/actions/fun.py
index d4fe0adeff6fdbb96cb4a5084b041538910adcc4..0d9a9a8f34cec4268130ddad46554b6d2f64240c 100644
--- a/src/actions/fun.py
+++ b/src/actions/fun.py
@@ -4,6 +4,7 @@ import random
 from telethon import events
 
 from src.config import config
+from src.utils.responses import mark_unread
 
 logger = logging.getLogger(__name__)
 swearing = [
@@ -24,6 +25,7 @@ swearing = [
 
 
 @config.telegram_client.on(events.NewMessage(pattern=r"^\.bl (.*)", forwards=False))
+@mark_unread
 async def blyaficate(event: events.NewMessage.Event):
     message = event.message.message.lstrip(".bl ").strip()
     response = ""
@@ -51,6 +53,7 @@ async def blyaficate(event: events.NewMessage.Event):
         pattern=rf"^({'|'.join(swearing)})\.?.*", forwards=False, outgoing=False
     )
 )
+@mark_unread
 async def swearing_reply(event):
     await event.reply(
         random.choice(
@@ -76,6 +79,7 @@ async def swearing_reply(event):
 @config.telegram_client.on(
     events.NewMessage(from_users=["clockblocker_tests_bot"], forwards=False)
 )
+@mark_unread
 async def lenochka_reply(event: events.NewMessage.Event):
     await event.reply(
         random.choice(
diff --git a/src/actions/package_indexes.py b/src/actions/package_indexes.py
index e0c79d7c9b19aeac92fc4d8065b71a7532165b3b..3f81230de5ed5e78e933c674fc1e18145cae4120 100644
--- a/src/actions/package_indexes.py
+++ b/src/actions/package_indexes.py
@@ -7,7 +7,7 @@ from telethon import events
 
 from src.config import config
 from src.utils.library_package import get_library_info, render_package_info
-from src.utils.responses import failed_search_answer
+from src.utils.responses import failed_search_answer, mark_unread
 
 logger = logging.getLogger(__name__)
 
@@ -19,6 +19,7 @@ class PackageIndex:
 
 
 @config.telegram_client.on(events.NewMessage(pattern=r"^\.pip (.*)"))
+@mark_unread
 async def find_py_package(event: events.NewMessage.Event):
     package_name = event.pattern_match.group(1).strip()
     async with httpx.AsyncClient() as client:
@@ -41,6 +42,7 @@ async def find_py_package(event: events.NewMessage.Event):
 
 
 @config.telegram_client.on(events.NewMessage(pattern=r"^\.cargo (.*)"))
+@mark_unread
 async def find_rs_package(event: events.NewMessage.Event):
     package_name = event.pattern_match.group(1).strip()
     async with httpx.AsyncClient() as client:
@@ -65,6 +67,7 @@ async def find_rs_package(event: events.NewMessage.Event):
 
 
 @config.telegram_client.on(events.NewMessage(pattern=r"^\.aur (.*)"))
+@mark_unread
 async def find_aur_package(event: events.NewMessage.Event):
     package_name = event.pattern_match.group(1).strip()
     async with httpx.AsyncClient() as client:
@@ -93,6 +96,7 @@ async def find_aur_package(event: events.NewMessage.Event):
 
 
 def mapper_function(index: PackageIndex):
+    @mark_unread
     async def function(event):
         package_name = event.pattern_match.group(1).strip()
         response_str = await get_library_info(
diff --git a/src/actions/replies.py b/src/actions/replies.py
index 3fff6b03c7c91336364e616b12f4798b4242bcc1..30a377f8f2d1b362a580b8b61dbdbf7b04741138 100644
--- a/src/actions/replies.py
+++ b/src/actions/replies.py
@@ -4,11 +4,13 @@ import random
 from telethon import events
 
 from src.config import config
+from src.utils.responses import mark_unread
 
 logger = logging.getLogger(__name__)
 
 
 @config.telegram_client.on(events.ChatAction())
+@mark_unread
 async def welcome(event: events.ChatAction.Event):
     if event.user_joined or event.user_added:
         await event.respond(
@@ -23,7 +25,8 @@ async def welcome(event: events.ChatAction.Event):
 
 
 @config.telegram_client.on(events.NewMessage(pattern=r"^(П|п)ривет\.?", forwards=False))
+@mark_unread
 async def hello(event):
     await event.respond(
-        random.choice(["Привет!", "Добрый день!", "Добрейший вечерочек!"])
+        random.choice(["Здравствуй!", "Добрый день!", "Добрейший вечерочек!"])
     )
diff --git a/src/actions/search_engines.py b/src/actions/search_engines.py
index 4a2e6b4c41801852ce25068fdf4830fce5b77a80..4c604f6bfa331373f79e45360053f718813773da 100644
--- a/src/actions/search_engines.py
+++ b/src/actions/search_engines.py
@@ -5,12 +5,13 @@ import httpx
 from telethon import events
 
 from src.config import config
-from src.utils.responses import failed_search_answer, thinking
+from src.utils.responses import failed_search_answer, mark_unread, thinking
 
 logger = logging.getLogger(__name__)
 
 
 @config.telegram_client.on(events.NewMessage(pattern=r"^\.i (.*)", forwards=False))
+@mark_unread
 @thinking
 async def search_images(event: events.NewMessage.Event):
     query_str = event.pattern_match.group(1).strip()
diff --git a/src/utils/responses.py b/src/utils/responses.py
index 4673a7e67102d4a76ed8c447ef7d32b3fd0b4144..e94d0f0bb9799e9d542aa0d971dcc073d6344c2d 100644
--- a/src/utils/responses.py
+++ b/src/utils/responses.py
@@ -3,7 +3,7 @@ import functools
 import logging
 import random
 
-from telethon import events
+from telethon import events, functions
 
 logger = logging.getLogger(__name__)
 
@@ -59,3 +59,16 @@ def thinking(f):
         await message.delete()
 
     return updated_function
+
+
+def mark_unread(f):
+    @functools.wraps(f)
+    async def wrapper(event: events.NewMessage.Event):
+        try:
+            await f(event)
+        except Exception as e:
+            logger.error(f"Exception found: {e}")
+        chat = await event.get_chat()
+        functions.messages.MarkDialogUnreadRequest(chat, unread=True)
+
+    return wrapper