diff --git a/src/messagesadapter.cpp b/src/messagesadapter.cpp
index fb4a4c0a8a3d9f749c623475c2e6aa0f75eeb06e..948d508c28f65f29f5d7754bd90d3790519271b2 100644
--- a/src/messagesadapter.cpp
+++ b/src/messagesadapter.cpp
@@ -25,7 +25,6 @@
 
 #include "appsettingsmanager.h"
 #include "qtutils.h"
-#include "utils.h"
 
 #include <api/datatransfermodel.h>
 
@@ -39,6 +38,7 @@
 #include <QMimeData>
 #include <QBuffer>
 #include <QtMath>
+#include <QDir>
 
 MessagesAdapter::MessagesAdapter(AppSettingsManager* settingsManager,
                                  PreviewEngine* previewEngine,
@@ -232,8 +232,8 @@ MessagesAdapter::onPaste()
         auto img_name_hash
             = QCryptographicHash::hash(QString::number(pixmap.cacheKey()).toLocal8Bit(),
                                        QCryptographicHash::Sha1);
-        QString fileName = "\\img_" + QString(img_name_hash.toHex()) + ".png";
-        QString path = QString(Utils::WinGetEnv("TEMP")) + fileName;
+        QString fileName = "img_" + QString(img_name_hash.toHex()) + ".png";
+        QString path = QDir::temp().filePath(fileName);
 
         if (!pixmap.save(path, "PNG")) {
             qDebug().noquote() << "Errors during QPixmap save"
diff --git a/src/updatemanager.cpp b/src/updatemanager.cpp
index b9af4044489578c1e24e5b18018f8806cf690ebb..716866a4633b5f3660911632bbd000f37828366c 100644
--- a/src/updatemanager.cpp
+++ b/src/updatemanager.cpp
@@ -19,11 +19,11 @@
 #include "updatemanager.h"
 
 #include "lrcinstance.h"
-#include "utils.h"
 #include "version.h"
 
 #include <QProcess>
 #include <QTimer>
+#include <QDir>
 
 #ifdef BETA
 static constexpr bool isBeta = true;
@@ -45,7 +45,7 @@ struct UpdateManager::Impl : public QObject
         , parent_(parent)
         , lrcInstance_(instance)
         , baseUrlString_(url.isEmpty() ? downloadUrl : url)
-        , tempPath_(Utils::WinGetEnv("TEMP"))
+        , tempPath_(QDir::tempPath())
         , updateTimer_(new QTimer(this))
     {
         connect(updateTimer_, &QTimer::timeout, [this] {
@@ -148,8 +148,8 @@ struct UpdateManager::Impl : public QObject
 
     void cleanUpdateFiles()
     {
-        // Delete all logs and msi in the %TEMP% directory before launching.
-        QString dir = QString(Utils::WinGetEnv("TEMP"));
+        // Delete all logs and msi in the temporary directory before launching.
+        QString dir = QDir::tempPath();
         QDir log_dir(dir, {"jami*.log"});
         for (const QString& filename : log_dir.entryList()) {
             log_dir.remove(filename);
diff --git a/src/utils.cpp b/src/utils.cpp
index 88465ed306202ea803ca29920a1066cb1abe0732..2114f9b0e484d1ab3f635e0470c660d701d229ac 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -213,23 +213,6 @@ Utils::CheckStartupLink(const std::wstring& wstrAppName)
 #endif
 }
 
-const char*
-Utils::WinGetEnv(const char* name)
-{
-#ifdef Q_OS_WIN
-    const DWORD buffSize = 65535;
-    static char buffer[buffSize];
-    if (GetEnvironmentVariableA(name, buffer, buffSize)) {
-        return buffer;
-    } else {
-        return 0;
-    }
-#else
-    Q_UNUSED(name)
-    return 0;
-#endif
-}
-
 void
 Utils::removeOldVersions()
 {
diff --git a/src/utils.h b/src/utils.h
index 174dfff7ee6725c834c30662953416a44fec34da..34cb91a68c68ce6365cf679e7f775699078297c7 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -62,7 +62,6 @@ bool CreateStartupLink(const std::wstring& wstrAppName);
 void DeleteStartupLink(const std::wstring& wstrAppName);
 bool CreateLink(LPCWSTR lpszPathObj, LPCWSTR lpszPathLink);
 bool CheckStartupLink(const std::wstring& wstrAppName);
-const char* WinGetEnv(const char* name);
 QString GetRingtonePath();
 QString GenGUID();
 QString GetISODate();