diff --git a/src/logger.cpp b/src/logger.cpp
index ef5e10cbd675a4a4234162c40ef02cf4303c6f0b..6b30a03058491590d52d72a0bf26cc477e684ad4 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -419,24 +419,20 @@ public:
 #ifdef _WIN32
         ::openlog(LOGFILE, WINLOG_PID, WINLOG_MAIL);
 #else
+#ifndef __ANDROID__
         ::openlog(LOGFILE, LOG_NDELAY, LOG_USER);
+#endif
 #endif /* _WIN32 */
     }
 
-    virtual void consume(jami::Logger::Msg& msg) override
+    virtual void consume(Logger::Msg& msg) override
     {
-        // syslog is supposed to thread-safe, but not all implementations (Android?)
-        // follow strictly POSIX rules... so we lock our mutex in any cases.
-        std::lock_guard<std::mutex> lk {mtx_};
 #ifdef __ANDROID__
         __android_log_print(msg.level_, APP_NAME, "%s%s", msg.header_.c_str(), msg.payload_.get());
 #else
         ::syslog(msg.level_, "%s", msg.payload_.get());
 #endif
     }
-
-private:
-    std::mutex mtx_;
 };
 
 void