diff --git a/daemon/src/audio/pulseaudio/audiostream.cpp b/daemon/src/audio/pulseaudio/audiostream.cpp
index cf3b72a9b59b33159f59bb1ac645a244d8b1a393..b36b849bd3efabd5172e85e4915069cb7d9156fc 100644
--- a/daemon/src/audio/pulseaudio/audiostream.cpp
+++ b/daemon/src/audio/pulseaudio/audiostream.cpp
@@ -93,7 +93,7 @@ AudioStream::~AudioStream()
 }
 
 void
-AudioStream::stream_state_callback (pa_stream* s, void* user_data)
+AudioStream::stream_state_callback (pa_stream* s, void* user_data UNUSED)
 {
     char str[PA_SAMPLE_SPEC_SNPRINT_MAX];
 
diff --git a/daemon/src/audio/sound/audiofile.cpp b/daemon/src/audio/sound/audiofile.cpp
index 619be1aec84eb72b970e75c0adb3ae5eba77aaab..c744aca12eb7e06cbce7c5f2a1a0a8115ebc3920 100644
--- a/daemon/src/audio/sound/audiofile.cpp
+++ b/daemon/src/audio/sound/audiofile.cpp
@@ -172,18 +172,10 @@ WaveFile::WaveFile (const std::string& fileName, unsigned int audioSamplingRate)
     fileStream.read ( (char*) &blockal, 2);
 
     // Determine the data type
-    SOUND_FORMAT dataType;
     SINT16 dt;
     fileStream.read ( (char*) &dt, 2);
-	if (dt == 8)
-		dataType = 1; // SINT8;
-	else if (dt == 16)
-		dataType = 2; // SINT16;
-	else if (dt == 32)
-		dataType = 3; // SINT32;
-	else {
+	if (dt != 8 && dt != 16 && dt != 32)
 		throw AudioFileException("File's bits per sample with is not supported");
-	}
 
     // Find the "data" chunk
     char data[4] = { 0, 0, 0, 0 };
diff --git a/daemon/src/dbus/callmanager.h b/daemon/src/dbus/callmanager.h
index 08ee61622f9d258595e62780c5dc7487a47f6399..4706decd8ec0192a27de6d7836215d660aa99b26 100644
--- a/daemon/src/dbus/callmanager.h
+++ b/daemon/src/dbus/callmanager.h
@@ -42,6 +42,11 @@
 #pragma GCC diagnostic warning "-Wignored-qualifiers"
 #pragma GCC diagnostic warning "-Wunused-parameter"
 
+#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 6
+/* This warning option only exists for gcc 4.6.0 and greater. */
+#pragma GCC diagnostic warning "-Wunused-but-set-variable"
+#endif
+
 #include <dbus-c++/dbus.h>
 #include <stdexcept>
 
diff --git a/daemon/src/dbus/configurationmanager.h b/daemon/src/dbus/configurationmanager.h
index 08fd6da1a660b90770e6fde1aa461b168bcd6972..0bb9536fe2d9518d634e4e90b3b29cb23b801fbc 100644
--- a/daemon/src/dbus/configurationmanager.h
+++ b/daemon/src/dbus/configurationmanager.h
@@ -44,6 +44,10 @@
 #pragma GCC diagnostic warning "-Wignored-qualifiers"
 #pragma GCC diagnostic warning "-Wunused-parameter"
 
+#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 6
+#pragma GCC diagnostic warning "-Wunused-but-set-variable"
+#endif
+
 #include <dbus-c++/dbus.h>
 
 class ConfigurationManager
diff --git a/daemon/src/dbus/dbusmanager.h b/daemon/src/dbus/dbusmanager.h
index 2e3ee3911f5b93a09a133c11dffa7a9eb9c0e1bb..a6bc51b8d66548c9f3a1eec71a3c6a926c7ab075 100644
--- a/daemon/src/dbus/dbusmanager.h
+++ b/daemon/src/dbus/dbusmanager.h
@@ -34,6 +34,8 @@
 #pragma GCC diagnostic ignored "-Wignored-qualifiers"
 #pragma GCC diagnostic ignored "-Wunused-parameter"
 #include <dbus-c++/dbus.h>
+#pragma GCC diagnostic warning "-Wignored-qualifiers"
+#pragma GCC diagnostic warning "-Wunused-parameter"
 class ConfigurationManager;
 class CallManager;
 class NetworkManager;
diff --git a/daemon/src/dbus/instance.h b/daemon/src/dbus/instance.h
index a31bff37c173a4eac922709b0e6b387e3722376f..0258d7fdcd8f16be390979a524f83350bbe0a57c 100644
--- a/daemon/src/dbus/instance.h
+++ b/daemon/src/dbus/instance.h
@@ -40,6 +40,10 @@
 #include "instance-glue.h"
 #pragma GCC diagnostic warning "-Wignored-qualifiers"
 #pragma GCC diagnostic warning "-Wunused-parameter"
+#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 6
+#pragma GCC diagnostic warning "-Wunused-but-set-variable"
+#endif
+
 #include <dbus-c++/dbus.h>
 
 
diff --git a/daemon/src/managerimpl.cpp b/daemon/src/managerimpl.cpp
index 9b1f1a1ac5af722a217bd6bf68dc7eec30d228d6..d7965974c9433bd77e2de9299b681a2b728a398e 100644
--- a/daemon/src/managerimpl.cpp
+++ b/daemon/src/managerimpl.cpp
@@ -1101,9 +1101,6 @@ void ManagerImpl::detachParticipant (const std::string& call_id,
         	return;
         }
 
-        // TODO: add conference_id as a second parameter
-        ConferenceMap::iterator iter = _conferencemap.find(call->getConfId());
-
         Conference *conf = getConferenceFromCallID(call_id);
         if (conf == NULL) {
             _error ("Manager: Error: Call is not conferencing, cannot detach");
diff --git a/daemon/src/sip/sdp.cpp b/daemon/src/sip/sdp.cpp
index 70030a01b845d665ffe785b9f1030bdb77c3e71f..a39800e9ef211db80adc131bbe5fb032e204e7a2 100644
--- a/daemon/src/sip/sdp.cpp
+++ b/daemon/src/sip/sdp.cpp
@@ -337,9 +337,6 @@ int Sdp::createLocalSession (const CodecOrder &selectedCodecs)
 int Sdp::createOffer (const CodecOrder &selectedCodecs)
 {
     pj_status_t status;
-    pjmedia_sdp_neg_state state;
-
-    _info ("SDP: Create initial offer");
 
     // Build the SDP session descriptor
     status = createLocalSession (selectedCodecs);
@@ -355,8 +352,6 @@ int Sdp::createOffer (const CodecOrder &selectedCodecs)
         return status;
     }
 
-    state = pjmedia_sdp_neg_get_state (negotiator_);
-
     PJ_ASSERT_RETURN (status == PJ_SUCCESS, 1);
 
     return PJ_SUCCESS;