diff --git a/daemon/configure.ac b/daemon/configure.ac
index f3915c46c3fd41db43dbaaf4b0af737bafb48646..aa26c38b556c7dbab47eb50811692cc69dba58ea 100644
--- a/daemon/configure.ac
+++ b/daemon/configure.ac
@@ -178,7 +178,7 @@ DBUS_CPP_REQUIRED_VERSION=0.6.0-pre1
 PKG_CHECK_MODULES(DBUSCPP, dbus-c++-1,,
 	AC_MSG_ERROR([You need the DBus-c++ libraries (version $DBUS_CPP_REQUIRED_VERSION or better)]))
 
-CXXFLAGS="${CXXFLAGS} -g -Wno-return-type -Wall -Wextra -Wnon-virtual-dtor"
+CXXFLAGS="${CXXFLAGS} -g -Wno-return-type -Wall -Wextra -Wnon-virtual-dtor -Wfatal-errors"
 
 AC_CHECK_LIB([expat], XML_ParserCreate_MM,
 		[AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false)],
diff --git a/daemon/src/account.h b/daemon/src/account.h
index c8eff7fb5336a6995248ff9018a5aaf2bfd28e03..76007b95f062ea114c0cc11bbd24d6cc99affc41 100644
--- a/daemon/src/account.h
+++ b/daemon/src/account.h
@@ -36,6 +36,7 @@
 #include <vector>
 
 #include "global.h"
+#include "noncopyable.h"
 #include "config/config.h"
 #include "config/serializable.h"
 
@@ -292,11 +293,7 @@ class Account : public Serializable {
         }
 
     private:
-        // copy constructor
-        Account(const Account& rh);
-
-        // assignment operator
-        Account& operator= (const Account& rh);
+        NON_COPYABLE(Account);
 
         /**
          * Helper function used to load the default codec order from the codec factory
diff --git a/daemon/src/audio/alsa/alsalayer.cpp b/daemon/src/audio/alsa/alsalayer.cpp
index 4c9d344bf697b86499ba749814626b449f6f850c..d903bb5cdb26ec3d2fcc7a403a22bc26ede9ee99 100644
--- a/daemon/src/audio/alsa/alsalayer.cpp
+++ b/daemon/src/audio/alsa/alsalayer.cpp
@@ -34,6 +34,7 @@
 #include "eventthread.h"
 #include "audio/samplerateconverter.h"
 #include "managerimpl.h"
+#include "noncopyable.h"
 #include "dbus/configurationmanager.h"
 
 class AlsaThread : public ost::Thread {
@@ -47,9 +48,7 @@ class AlsaThread : public ost::Thread {
         virtual void run();
 
     private:
-        AlsaThread(const AlsaThread& at);
-        AlsaThread& operator= (const AlsaThread& at);
-
+        NON_COPYABLE(AlsaThread);
         AlsaLayer* alsa_;
 };
 
diff --git a/daemon/src/audio/alsa/alsalayer.h b/daemon/src/audio/alsa/alsalayer.h
index 7c400e34ae3dbe3730d1f791ee2398bb2ae2a77d..083e7f2500b348783d1a4912588aac92cfca87dc 100644
--- a/daemon/src/audio/alsa/alsalayer.h
+++ b/daemon/src/audio/alsa/alsalayer.h
@@ -33,6 +33,7 @@
 #define _ALSA_LAYER_H
 
 #include "audio/audiolayer.h"
+#include "noncopyable.h"
 #include <alsa/asoundlib.h>
 
 class RingBuffer;
@@ -167,12 +168,7 @@ class AlsaLayer : public AudioLayer {
          */
         int indexRing_;
 
-
-        // Copy Constructor
-        AlsaLayer(const AlsaLayer& rh);
-
-        // Assignment Operator
-        AlsaLayer& operator= (const AlsaLayer& rh);
+        NON_COPYABLE(AlsaLayer);
 
         /**
          * Drop the pending frames and close the capture device
diff --git a/daemon/src/audio/audiolayer.h b/daemon/src/audio/audiolayer.h
index f28ec6e234642e66e7304a72f0af649b793e82d5..0601ddf3881e4dc23a39002b17937bdc0cbd7575 100644
--- a/daemon/src/audio/audiolayer.h
+++ b/daemon/src/audio/audiolayer.h
@@ -41,6 +41,7 @@
 #include "ringbuffer.h"
 #include "dcblocker.h"
 #include "samplerateconverter.h"
+#include "noncopyable.h"
 
 /**
  * @file  audiolayer.h
@@ -55,21 +56,10 @@ class Time;
 
 class AudioLayer {
     private:
-        //copy constructor
-        AudioLayer(const AudioLayer& rh);
-
-        // assignment operator
-        const AudioLayer& operator= (const AudioLayer& rh);
+        NON_COPYABLE(AudioLayer);
 
     public:
-        /**
-         * Constructor
-         */
         AudioLayer();
-
-        /**
-         * Destructor
-         */
         virtual ~AudioLayer();
 
         /**
@@ -151,7 +141,6 @@ class AudioLayer {
         SamplerateConverter *converter_;
 
     private:
-
         /**
          * Time of the last incoming call notification
          */
diff --git a/daemon/src/audio/audioloop.h b/daemon/src/audio/audioloop.h
index f64f5b0b40f4ab11a8afe2d6998c755fe6992722..cc6cc653fbe85e4df52c35e415667f70f497c20f 100644
--- a/daemon/src/audio/audioloop.h
+++ b/daemon/src/audio/audioloop.h
@@ -34,6 +34,7 @@
 #define __AUDIOLOOP_H__
 
 #include "global.h" // for SFLDataFormat
+#include "noncopyable.h"
 
 /**
  * @file audioloop.h
@@ -85,12 +86,7 @@ class AudioLoop {
         unsigned int sampleRate_;
 
     private:
-
-        // Copy Constructor
-        AudioLoop(const AudioLoop& rh);
-
-        // Assignment Operator
-        const AudioLoop& operator= (const AudioLoop& rh);
+        NON_COPYABLE(AudioLoop);
 };
 
 #endif // __AUDIOLOOP_H__
diff --git a/daemon/src/audio/audiorecorder.h b/daemon/src/audio/audiorecorder.h
index cc51162c36964cc1d5a4b7cb49a85a92f9e9aaf6..eb7ccf1fe146b4d763befce1afdabe8eff9e8856 100644
--- a/daemon/src/audio/audiorecorder.h
+++ b/daemon/src/audio/audiorecorder.h
@@ -31,9 +31,10 @@
 #ifndef __AUDIORECORDER_H_
 #define __AUDIORECORDER_H_
 
+#include <string>
 #include <cc++/thread.h>
 #include "audiorecord.h"
-#include <string>
+#include "noncopyable.h"
 
 class MainBuffer;
 
@@ -55,13 +56,10 @@ class AudioRecorder : public ost::Thread {
         virtual void run();
 
     private:
-        AudioRecorder(const AudioRecorder& ar);
-        AudioRecorder& operator= (const AudioRecorder& ar);
+        NON_COPYABLE(AudioRecorder);
 
         std::string recorderId_;
-
         MainBuffer *mbuffer_;
-
         AudioRecord *arecord_;
 };
 
diff --git a/daemon/src/audio/audiortp/audio_rtp_record_handler.h b/daemon/src/audio/audiortp/audio_rtp_record_handler.h
index dc0349a6e545e2ce855f9af7082c8a2761968d85..cf8c20e9f48eee754ad30c26241730be265e2e05 100644
--- a/daemon/src/audio/audiortp/audio_rtp_record_handler.h
+++ b/daemon/src/audio/audiortp/audio_rtp_record_handler.h
@@ -27,8 +27,8 @@
  *  as that of the covered work.
  */
 
-#ifndef __AUDIO_RTP_RECORD_HANDLER_H__
-#define __AUDIO_RTP_RECORD_HANDLER_H__
+#ifndef AUDIO_RTP_RECORD_HANDLER_H__
+#define AUDIO_RTP_RECORD_HANDLER_H__
 #include <cstddef>
 
 using std::ptrdiff_t;
@@ -37,6 +37,7 @@ using std::ptrdiff_t;
 #include <list>
 
 class SIPCall;
+#include "noncopyable.h"
 #include "audio/codecs/audiocodec.h"
 #include "audio/samplerateconverter.h"
 #include "audio/noisesuppress.h"
@@ -96,9 +97,7 @@ class AudioRtpRecord {
         std::string callId_;
         unsigned int dtmfPayloadType_;
     private:
-        /* non copyable */
-        AudioRtpRecord(const AudioRtpRecord &);
-        AudioRtpRecord & operator=(const AudioRtpRecord &);
+        NON_COPYABLE(AudioRtpRecord);
 };
 
 
@@ -184,4 +183,4 @@ class AudioRtpRecordHandler {
 
 }
 
-#endif // __AUDIO_RTP_RECORD_HANDLER_H__
+#endif // AUDIO_RTP_RECORD_HANDLER_H__
diff --git a/daemon/src/audio/audiortp/audio_symmetric_rtp_session.h b/daemon/src/audio/audiortp/audio_symmetric_rtp_session.h
index 25e6393da64724adfe2aa2593b675f2d0da038e9..22d3a8a56f16f1b2071502252701320bb07e55ea 100644
--- a/daemon/src/audio/audiortp/audio_symmetric_rtp_session.h
+++ b/daemon/src/audio/audiortp/audio_symmetric_rtp_session.h
@@ -39,6 +39,7 @@
 #include <cstddef>
 
 #include "audio_rtp_session.h"
+#include "noncopyable.h"
 
 using std::ptrdiff_t;
 #include <ccrtp/rtp.h>
@@ -80,9 +81,7 @@ class AudioSymmetricRtpSession : public ost::TimerPort, public ost::SymmetricRTP
                 bool running;
 
             private:
-                AudioRtpThread(const AudioRtpThread &);
-                AudioRtpThread& operator=(const AudioRtpThread &);
-
+                NON_COPYABLE(AudioRtpThread);
                 AudioSymmetricRtpSession *rtpSession;
         };
         SpeexEchoCancel echoCanceller;
diff --git a/daemon/src/audio/codecs/celtcodec.cpp b/daemon/src/audio/codecs/celtcodec.cpp
index 4b975492937a35849834cc4b2c0f4ab659ba51b8..f992d2bed91f034bb041c03fb4f1c76e2580da2e 100644
--- a/daemon/src/audio/codecs/celtcodec.cpp
+++ b/daemon/src/audio/codecs/celtcodec.cpp
@@ -32,7 +32,7 @@
 #include <cstdio>
 #include <celt/celt.h>
 #include <stdexcept>
-
+#include "noncopyable.h"
 
 class Celt : public sfl::AudioCodec {
 
@@ -89,8 +89,7 @@ class Celt : public sfl::AudioCodec {
             celt_decoder_ctl(dec_, CELT_SET_PREDICTION(2));
         }
 
-        Celt(const Celt&);
-        Celt& operator= (const Celt&);
+        NON_COPYABLE(Celt);
 
         ~Celt() {
             celt_encoder_destroy(enc_);
diff --git a/daemon/src/audio/codecs/gsmcodec.cpp b/daemon/src/audio/codecs/gsmcodec.cpp
index 7120f9691e7cc8343601aa523b0444c91118423f..8160253587a3dc2df02f4ce596530d0fa1d6ac80 100644
--- a/daemon/src/audio/codecs/gsmcodec.cpp
+++ b/daemon/src/audio/codecs/gsmcodec.cpp
@@ -31,6 +31,7 @@
 
 
 #include "audiocodec.h"
+#include "noncopyable.h"
 #include <cassert>
 #include <stdexcept>
 
@@ -60,10 +61,6 @@ class Gsm : public sfl::AudioCodec {
                 throw std::runtime_error("ERROR: encode_gsm_create\n");
         }
 
-        Gsm(const Gsm&);
-
-        Gsm& operator= (const Gsm&);
-
         virtual ~Gsm() {
             gsm_destroy(decode_gsmhandle_);
             gsm_destroy(encode_gsmhandle_);
@@ -85,6 +82,7 @@ class Gsm : public sfl::AudioCodec {
         }
 
     private:
+        NON_COPYABLE(Gsm);
         gsm decode_gsmhandle_;
         gsm encode_gsmhandle_;
 };
diff --git a/daemon/src/audio/codecs/speexcodec.h b/daemon/src/audio/codecs/speexcodec.h
index af257234d36407d3913888283f9bdecbeaf4f4d8..64e2966b23a49ecf06319ac4c30ba3682ea0b148 100644
--- a/daemon/src/audio/codecs/speexcodec.h
+++ b/daemon/src/audio/codecs/speexcodec.h
@@ -31,6 +31,7 @@
 
 #include "global.h"
 #include "audiocodec.h"
+#include "noncopyable.h"
 #include <cstdio>
 #include <speex/speex.h>
 #include <cassert>
@@ -89,8 +90,7 @@ class Speex : public sfl::AudioCodec {
             speex_decoder_ctl(speex_dec_state_, SPEEX_GET_FRAME_SIZE, &speex_frame_size_);
         }
 
-        Speex(const Speex&);
-        Speex& operator= (const Speex&);
+        NON_COPYABLE(Speex);
 
         ~Speex() {
             // Destroy the decoder struct
diff --git a/daemon/src/audio/noisesuppress.h b/daemon/src/audio/noisesuppress.h
index 31621f2fef774069fc413262fa870003d1cb309b..0e58f20ac7ffaee5ec641305c71648d4c495e5ac 100644
--- a/daemon/src/audio/noisesuppress.h
+++ b/daemon/src/audio/noisesuppress.h
@@ -32,7 +32,8 @@
 #define NOISESUPPRESS_H
 
 #include <speex/speex_preprocess.h>
-#include "global.h"
+#include "global.h" // for SFLDataFormat
+#include "noncopyable.h"
 
 class NoiseSuppress {
     public:
@@ -41,8 +42,7 @@ class NoiseSuppress {
         void process(SFLDataFormat *data, int samples);
 
     private:
-        NoiseSuppress(const NoiseSuppress&);
-        NoiseSuppress& operator=(const NoiseSuppress&);
+        NON_COPYABLE(NoiseSuppress);
 
         int smplPerFrame_;
         SpeexPreprocessState *noiseState_;
diff --git a/daemon/src/audio/pulseaudio/audiostream.h b/daemon/src/audio/pulseaudio/audiostream.h
index 7e67db5fc305f6d83b2d47511bc8a2fd4ed353c2..8d484407b91962c00603f49dc824b2ca49aff8cc 100644
--- a/daemon/src/audio/pulseaudio/audiostream.h
+++ b/daemon/src/audio/pulseaudio/audiostream.h
@@ -33,6 +33,7 @@
 
 #include <pulse/pulseaudio.h>
 #include <string>
+#include "noncopyable.h"
 
 /**
  * This data structure contains the different king of audio streams available
@@ -69,12 +70,7 @@ class AudioStream {
         bool isReady();
 
     private:
-
-        // Copy Constructor
-        AudioStream(const AudioStream& rh);
-
-        // Assignment Operator
-        AudioStream& operator=(const AudioStream& rh);
+        NON_COPYABLE(AudioStream);
 
         /**
          * Mandatory asynchronous callback on the audio stream state
diff --git a/daemon/src/audio/pulseaudio/pulselayer.h b/daemon/src/audio/pulseaudio/pulselayer.h
index ae66a07b6c6ae8084b09d4a483ffc64694461153..ae4092b1324b33ec21331ef386b6c11d929215e8 100644
--- a/daemon/src/audio/pulseaudio/pulselayer.h
+++ b/daemon/src/audio/pulseaudio/pulselayer.h
@@ -29,15 +29,15 @@
  *  as that of the covered work.
  */
 
-#ifndef _PULSE_LAYER_H
-#define _PULSE_LAYER_H
-
-#include "audio/audiolayer.h"
-#include <pulse/pulseaudio.h>
-#include <pulse/stream.h>
+#ifndef PULSE_LAYER_H_
+#define PULSE_LAYER_H_
 
 #include <list>
 #include <string>
+#include <pulse/pulseaudio.h>
+#include <pulse/stream.h>
+#include "audio/audiolayer.h"
+#include "noncopyable.h"
 
 class AudioStream;
 
@@ -78,11 +78,7 @@ class PulseLayer : public AudioLayer {
                                              const pa_sink_info *i,
                                              int eol, void *userdata);
 
-        // Copy Constructor
-        PulseLayer(const PulseLayer& rh);
-
-        // Assignment Operator
-        PulseLayer& operator= (const PulseLayer& rh);
+        NON_COPYABLE(PulseLayer);
 
         /**
          * Create the audio streams into the given context
@@ -126,5 +122,5 @@ class PulseLayer : public AudioLayer {
         friend class AudioLayerTest;
 };
 
-#endif // _PULSE_LAYER_H_
+#endif // PULSE_LAYER_H_
 
diff --git a/daemon/src/audio/ringbuffer.h b/daemon/src/audio/ringbuffer.h
index 0444153c09990db1b21cc626ceac8e7dc5c918a1..f22b1f7f10965248f59ffdadb4bc51576840bc0c 100644
--- a/daemon/src/audio/ringbuffer.h
+++ b/daemon/src/audio/ringbuffer.h
@@ -22,9 +22,9 @@
 #ifndef __RING_BUFFER__
 #define __RING_BUFFER__
 
-#include "../call.h"
-
 #include <fstream>
+#include "../call.h"
+#include "noncopyable.h"
 
 typedef std::map<std::string, int> ReadPointer;
 
@@ -133,11 +133,7 @@ class RingBuffer {
         void debug();
 
     private:
-        // Copy Constructor
-        RingBuffer(const RingBuffer& rh);
-
-        // Assignment operator
-        RingBuffer& operator= (const RingBuffer& rh);
+        NON_COPYABLE(RingBuffer);
 
         /** Pointer on the last data */
         int           endPos_;
diff --git a/daemon/src/audio/samplerateconverter.h b/daemon/src/audio/samplerateconverter.h
index dbd44445d25942a1ba427d5a734b30342eb1ed69..ae4b3d28a1094ccb10a3b94fb80d6ab9aa6c346e 100644
--- a/daemon/src/audio/samplerateconverter.h
+++ b/daemon/src/audio/samplerateconverter.h
@@ -32,10 +32,10 @@
 #define _SAMPLE_RATE_H
 
 #include <samplerate.h>
-#include <math.h>
+#include <cmath>
 
 #include "global.h"
-
+#include "noncopyable.h"
 
 class SamplerateConverter {
     public:
@@ -70,11 +70,7 @@ class SamplerateConverter {
 
 
     private:
-        // Copy Constructor
-        SamplerateConverter(const SamplerateConverter& rh);
-
-        // Assignment Operator
-        SamplerateConverter& operator= (const SamplerateConverter& rh);
+        NON_COPYABLE(SamplerateConverter);
 
         /* temporary buffers */
         float * floatBufferIn_;
diff --git a/daemon/src/audio/sound/audiofile.h b/daemon/src/audio/sound/audiofile.h
index 27cd35672b0342182d93aeac1b61da18b86577c6..1ebf376be7672a0e8c1315e4891158940c926110 100644
--- a/daemon/src/audio/sound/audiofile.h
+++ b/daemon/src/audio/sound/audiofile.h
@@ -69,9 +69,7 @@ class RawFile : public AudioFile {
         RawFile(const std::string& name, sfl::AudioCodec* codec, unsigned int sampleRate = 8000);
 
     private:
-        // noncopyable
-        RawFile(const RawFile& rh);
-        RawFile& operator= (const RawFile& rh);
+        NON_COPYABLE(RawFile);
 
         /** Your preferred codec */
         sfl::AudioCodec* audioCodec_;
diff --git a/daemon/src/audio/sound/dtmfgenerator.h b/daemon/src/audio/sound/dtmfgenerator.h
index dc0b1599032942e9c867e5fadf2a237d25a9e867..9eb8105db567fc05513b5ad28ec5d025b18d8074 100644
--- a/daemon/src/audio/sound/dtmfgenerator.h
+++ b/daemon/src/audio/sound/dtmfgenerator.h
@@ -37,8 +37,8 @@
 #define DTMFGENERATOR_H
 
 #include <stdexcept>
-#include <string.h>
-
+#include <string>
+#include "noncopyable.h"
 #include "tone.h"
 
 #define NUM_TONES 16
@@ -94,17 +94,9 @@ class DTMFGenerator {
          */
         DTMFGenerator(unsigned int sampleRate);
 
-        /**
-         * Destructor
-         */
         ~DTMFGenerator();
 
-
-        // Copy Constructor
-        DTMFGenerator(const DTMFGenerator& rh);
-
-        // Assignment Operator
-        DTMFGenerator& operator= (const DTMFGenerator& rh);
+        NON_COPYABLE(DTMFGenerator);
 
         /*
          * Get n samples of the signal of code code
diff --git a/daemon/src/audio/sound/tonelist.h b/daemon/src/audio/sound/tonelist.h
index 5c43b6ab52b196009f637e496291c96f36606368..c5cf440b7e389657b7b732abb374bb4d6514fced 100644
--- a/daemon/src/audio/sound/tonelist.h
+++ b/daemon/src/audio/sound/tonelist.h
@@ -58,10 +58,7 @@ class TelephoneTone {
         Tone* getCurrentTone();
 
     private:
-        // Copy Constructor
-        TelephoneTone(const TelephoneTone& rh);
-        // Assignment Operator
-        TelephoneTone& operator= (const TelephoneTone& rh);
+        NON_COPYABLE(TelephoneTone);
 
         static COUNTRYID getCountryId(const std::string& countryName);
 
diff --git a/daemon/src/config/config.h b/daemon/src/config/config.h
index 05ea82176b270ff0b5a5a74459a716c151118bd8..d046f894d701b30822c66322f4dbbfd030c722c5 100644
--- a/daemon/src/config/config.h
+++ b/daemon/src/config/config.h
@@ -29,12 +29,13 @@
  *  as that of the covered work.
  */
 
-#ifndef __CONF_CONFIG_H__
-#define __CONF_CONFIG_H__
+#ifndef CONF_CONFIG_H__
+#define CONF_CONFIG_H__
 
 #include <map>
 #include <string>
 #include <list>
+#include "noncopyable.h"
 
 /**
  * @file config.h
@@ -81,8 +82,7 @@ class ConfigTreeIterator {
         friend class ConfigTree;
         ConfigTreeIterator(ConfigTree *configTree) : tree_(configTree), endToken_(), iter_(), iterItem_() {}
 
-        ConfigTreeIterator(const Conf::ConfigTreeIterator&);
-        ConfigTreeIterator& operator= (const Conf::ConfigTreeIterator&);
+        NON_COPYABLE(ConfigTreeIterator);
 
         ConfigTree* tree_;
         TokenList endToken_;
@@ -171,9 +171,7 @@ class ConfigTree {
 
         friend class ConfigTreeIterator;
 
-        // noncopyable
-        ConfigTree(const ConfigTree &other);
-        ConfigTree& operator=(const ConfigTree &other);
+        NON_COPYABLE(ConfigTree);
     public:
         ConfigTreeIterator createIterator() {
             return ConfigTreeIterator(this);
diff --git a/daemon/src/config/yamlemitter.h b/daemon/src/config/yamlemitter.h
index d8675c5f3ceeb558373c9dfc0104597d1ae268ff..638ee5a74562756e71fabec5bc2b1fb7afa918cb 100644
--- a/daemon/src/config/yamlemitter.h
+++ b/daemon/src/config/yamlemitter.h
@@ -34,6 +34,7 @@
 #include <yaml.h>
 #include <stdexcept>
 #include <string>
+#include "noncopyable.h"
 #include "yamlnode.h"
 
 namespace Conf {
@@ -83,6 +84,7 @@ class YamlEmitter {
 
     private:
 
+        NON_COPYABLE(YamlEmitter);
         void addMappingItem(int mappingid, std::string key, YamlNode *node);
 
         std::string filename;
diff --git a/daemon/src/dbus/dbus_cpp.h b/daemon/src/dbus/dbus_cpp.h
index 0d05dd30cc6e168dda1c9ed472a39cec3559ff7b..8991c6fb41349e92555f8924ad622b83b9741d86 100644
--- a/daemon/src/dbus/dbus_cpp.h
+++ b/daemon/src/dbus/dbus_cpp.h
@@ -27,8 +27,8 @@
  *  shall include the source code for the parts of OpenSSL used as well
  *  as that of the covered work.
  */
-#ifndef _DBUS_CPP_WRAPPER_H_
-#define  _DBUS_CPP_WRAPPER_H_
+#ifndef DBUS_CPP_WRAPPER_H_
+#define DBUS_CPP_WRAPPER_H_
 
 #pragma GCC diagnostic ignored "-Wshadow"
 #pragma GCC diagnostic ignored "-Wignored-qualifiers"
@@ -38,4 +38,4 @@
 #pragma GCC diagnostic warning "-Wshadow"
 #pragma GCC diagnostic warning "-Wunused-parameter"
 
-#endif // _DBUS_CPP_WRAPPER_H_
+#endif // DBUS_CPP_WRAPPER_H_
diff --git a/daemon/src/dbus/dbusmanager.h b/daemon/src/dbus/dbusmanager.h
index 88166cf8d83b2814dc71fc7d654a08a617005b13..f471f3b0fb0eff174a8844cbb23f2f46dcc2b8d8 100644
--- a/daemon/src/dbus/dbusmanager.h
+++ b/daemon/src/dbus/dbusmanager.h
@@ -32,6 +32,7 @@
 #define __DBUSMANAGERIMPL_H__
 
 #include "dbus_cpp.h"
+#include "noncopyable.h"
 
 class ConfigurationManager;
 class CallManager;
@@ -54,6 +55,7 @@ class DBusManager {
         void exit();
 
     private:
+        NON_COPYABLE(DBusManager);
         CallManager*          callManager_;
         ConfigurationManager* configurationManager_;
         Instance*             instanceManager_;
diff --git a/daemon/src/eventthread.h b/daemon/src/eventthread.h
index 53c357253bd7c0585d2871fe5750a2c54e614ad6..34e678bc206f339574ab5c74f7b5e02ea0c88df9 100644
--- a/daemon/src/eventthread.h
+++ b/daemon/src/eventthread.h
@@ -32,6 +32,7 @@
 #define __EVENT_THREAD_H__
 
 #include <cc++/thread.h>
+#include "noncopyable.h"
 
 class VoIPLink;
 
@@ -51,8 +52,7 @@ class EventThread : public ost::Thread {
         virtual void run() ;
 
     private:
-        EventThread(const EventThread& rh);
-        EventThread& operator= (const EventThread& rh);
+        NON_COPYABLE(EventThread);
 
         // VoIPLink is the object being called by getEvents() method
         VoIPLink*	link_;
diff --git a/daemon/src/managerimpl.h b/daemon/src/managerimpl.h
index 6370ee25dafcd7db7abab426d9d236f5881d66f9..a12b3f00a4bf310fc5ae3090c6e857c328554031 100644
--- a/daemon/src/managerimpl.h
+++ b/daemon/src/managerimpl.h
@@ -52,6 +52,7 @@
 
 #include "audio/mainbuffer.h"
 #include "preferences.h"
+#include "noncopyable.h"
 
 namespace sfl {
 class InstantMessaging;
@@ -1195,12 +1196,7 @@ class ManagerImpl {
         void registerAccounts();
 
     private:
-
-        // Copy Constructor
-        ManagerImpl(const ManagerImpl& rh);
-
-        // Assignment Operator
-        ManagerImpl& operator= (const ManagerImpl& rh);
+        NON_COPYABLE(ManagerImpl);
 
         /**
           * To handle the persistent history
diff --git a/daemon/src/noncopyable.h b/daemon/src/noncopyable.h
index 28004a43f3e9ebb6b01a15ad1163d089fef560d7..9e4d678bbdde8b49780a44a942c619ea85e0ee87 100644
--- a/daemon/src/noncopyable.h
+++ b/daemon/src/noncopyable.h
@@ -28,8 +28,8 @@
  *  as that of the covered work.
  */
 
-#ifndef NONCOPYABLE_H_
-#define NONCOPYABLE_H_
+#ifndef NON_COPYABLE_H_
+#define NON_COPYABLE_H_
 
 /**
  * @file noncopyable.h
@@ -43,4 +43,4 @@
     ClassName(const ClassName&); \
     ClassName& operator=(const ClassName&)
 
-#endif	// NONCOPYABLE_H_
+#endif	// NON_COPYABLE_H_
diff --git a/daemon/src/sip/sdp.h b/daemon/src/sip/sdp.h
index 586fb904aff629ea3d3b6e7d3a5186eeee46fe04..86ae72be9819ca2fc80dd8ea219cc280e514259c 100644
--- a/daemon/src/sip/sdp.h
+++ b/daemon/src/sip/sdp.h
@@ -45,6 +45,7 @@
 #include <stdexcept>
 
 #include "global.h" // for CodecOrder
+#include "noncopyable.h"
 
 namespace sfl {
 class AudioCodec;
@@ -354,9 +355,7 @@ class Sdp {
          */
         unsigned int telephoneEventPayload_;
 
-        // noncopyable
-        Sdp(const Sdp&);
-        Sdp& operator=(const Sdp&);
+        NON_COPYABLE(Sdp);
 
         /*
          * Build the sdp media section
diff --git a/daemon/src/sip/sipaccount.h b/daemon/src/sip/sipaccount.h
index 1473ec97757501cda91bb7201a9c4f162aad3834..076fe6076c967e381219594d24a8eea01cd103eb 100644
--- a/daemon/src/sip/sipaccount.h
+++ b/daemon/src/sip/sipaccount.h
@@ -35,14 +35,13 @@
 #ifndef SIPACCOUNT_H
 #define SIPACCOUNT_H
 
-#include <sstream>
-
+#include <vector>
+#include <map>
 #include "account.h"
 #include "pjsip/sip_transport_tls.h"
 #include "pjsip/sip_types.h"
 #include "pjsip-ua/sip_regc.h"
-#include <vector>
-#include <map>
+#include "noncopyable.h"
 
 namespace Conf {
 class YamlEmitter;
@@ -413,6 +412,7 @@ class SIPAccount : public Account {
 
         pjsip_transport* transport_;
     private:
+        NON_COPYABLE(SIPAccount);
 
         std::vector< std::map<std::string, std::string > > credentials_;
 
@@ -442,10 +442,6 @@ class SIPAccount : public Account {
          */
         static std::string getLoginName();
 
-        // noncopyable
-        SIPAccount(const SIPAccount &);
-        SIPAccount& operator=(const SIPAccount &);
-
         // The pjsip client registration information
         pjsip_regc *regc_;
         // To check if the account is registered
diff --git a/daemon/src/sip/sipcall.h b/daemon/src/sip/sipcall.h
index 7213957f02ab2dd3d24c09f054ed171d2611844a..dab99795a77a66809277723be08e990e28b25248 100644
--- a/daemon/src/sip/sipcall.h
+++ b/daemon/src/sip/sipcall.h
@@ -34,6 +34,7 @@
 
 #include "call.h"
 #include "audio/audiortp/audio_rtp_factory.h"
+#include "noncopyable.h"
 
 class pjsip_evsub;
 class pj_caching_pool;
@@ -89,11 +90,7 @@ class SIPCall : public Call {
 
     private:
 
-        // Copy Constructor
-        SIPCall(const SIPCall& rh);
-
-        // Assignment Operator
-        SIPCall& operator= (const SIPCall& rh);
+        NON_COPYABLE(SIPCall);
 
         /**
          * Audio Rtp Session factory
diff --git a/daemon/src/sip/sipvoiplink.h b/daemon/src/sip/sipvoiplink.h
index cf5fdfb613c8eb1cd98e14209caf0f17165b2c62..1c2fceb9bc8fe1f63814dd1cd071e8c1d748e965 100644
--- a/daemon/src/sip/sipvoiplink.h
+++ b/daemon/src/sip/sipvoiplink.h
@@ -282,11 +282,7 @@ class SIPVoIPLink : public VoIPLink {
 
         void dtmfSend(SIPCall *call, char code, DtmfType type);
 
-        /* Assignment Operator */
-        SIPVoIPLink& operator= (const SIPVoIPLink& rh);
-
-        /* Copy Constructor */
-        SIPVoIPLink(const SIPVoIPLink& rh);
+        NON_COPYABLE(SIPVoIPLink);
 
         SIPVoIPLink();