diff --git a/daemon/src/audio/mainbuffer.h b/daemon/src/audio/mainbuffer.h
index c09c8318d6d81aef47b6bc9662f8b1aafb947e74..6257aa64e5eae2effd21536a068168c92996c791 100644
--- a/daemon/src/audio/mainbuffer.h
+++ b/daemon/src/audio/mainbuffer.h
@@ -37,6 +37,8 @@
 #include <pthread.h>
 
 #include "audiobuffer.h"
+#include "mainbuffer.h"
+#include "noncopyable.h"
 
 class RingBuffer;
 
@@ -99,6 +101,7 @@ class MainBuffer {
         void dumpInfo();
 
     private:
+        NON_COPYABLE(MainBuffer);
 
         CallIDSet* getCallIDSet(const std::string &call_id);
 
diff --git a/daemon/src/conference.cpp b/daemon/src/conference.cpp
index 4d4745ca7d5baeef55a83f609ef050915e869cf8..57ff553ac3eba050f0fe86f5487f9fe444dd8ac7 100644
--- a/daemon/src/conference.cpp
+++ b/daemon/src/conference.cpp
@@ -93,7 +93,7 @@ void Conference::remove(const std::string &participant_id)
 
 void Conference::bindParticipant(const std::string &participant_id)
 {
-    auto mainBuffer = Manager::instance().getMainBuffer();
+    auto &mainBuffer = Manager::instance().getMainBuffer();
 
     for (const auto &item : participants_) {
         if (participant_id != item)