Index: svxlink-14.08.1/src/CMakeLists.txt
===================================================================
--- svxlink-14.08.1.orig/src/CMakeLists.txt
+++ svxlink-14.08.1/src/CMakeLists.txt
@@ -288,6 +288,7 @@ configure_file(${CMAKE_SOURCE_DIR}/confi
 find_package(SIGC2 REQUIRED)
 include_directories(${SIGC2_INCLUDE_DIRS})
 add_definitions(${SIGC2_DEFINITIONS})
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SIGC2_CXX_FLAGS}")
 set(LIBS ${LIBS} ${SIGC2_LIBRARIES})
 
 # Find the chown utility
Index: svxlink-14.08.1/src/cmake/Modules/FindSIGC2.cmake
===================================================================
--- svxlink-14.08.1.orig/src/cmake/Modules/FindSIGC2.cmake
+++ svxlink-14.08.1/src/cmake/Modules/FindSIGC2.cmake
@@ -4,11 +4,16 @@
 #  SIGC2_INCLUDE_DIRS - The libsigc++-2 include directories
 #  SIGC2_LIBRARIES    - The libraries needed to use libsigc++-2
 #  SIGC2_DEFINITIONS  - Compiler switches required for using libsigc++-2
+#  SIGC_CXX_FLAGS     - Required C++ specific compiler switches
 
 find_package(PkgConfig)
 pkg_check_modules(PC_SIGC2 sigc++-2.0)
 set(SIGC2_DEFINITIONS ${PC_SIGC2_CFLAGS_OTHER})
 
+if(${PC_SIGC2_VERSION} VERSION_GREATER "2.5.0")
+  set(SIGC2_CXX_FLAGS "--std=c++11")
+endif()
+
 find_path(SIGC2_CONFIG_INCLUDE_DIR sigc++config.h
   HINTS ${PC_SIGC2_INCLUDEDIR} ${PC_SIGC2_INCLUDE_DIRS}
   )
Index: svxlink-14.08.1/src/misc/CMakeLists.txt
===================================================================
--- svxlink-14.08.1.orig/src/misc/CMakeLists.txt
+++ svxlink-14.08.1/src/misc/CMakeLists.txt
@@ -1,4 +1,4 @@
-set(EXPINC common.h)
+set(EXPINC common.h CppStdCompat.h)
 
 # Copy exported include files to the global include directory
 foreach(incfile ${EXPINC})
Index: svxlink-14.08.1/src/misc/CppStdCompat.h
===================================================================
--- /dev/null
+++ svxlink-14.08.1/src/misc/CppStdCompat.h
@@ -0,0 +1,10 @@
+#ifndef CPP_STD_COMPAT_INCLUDED
+#define CPP_STD_COMPAT_INCLUDED
+
+#if __cplusplus >= 201102L
+  #define CONSTEXPR constexpr
+#else
+  #define CONSTEXPR const
+#endif
+
+#endif /* CPP_STD_COMPAT_INCLUDED */
Index: svxlink-14.08.1/src/svxlink/ChangeLog
===================================================================
--- svxlink-14.08.1.orig/src/svxlink/ChangeLog
+++ svxlink-14.08.1/src/svxlink/ChangeLog
@@ -97,6 +97,11 @@
 * Bugfix in ModuleTcl example file.
 
 
+* SvxLink now compile in C++11 mode with GCC and other compilers that
+  understand the -std=c++11 compiler switch. The compiler switch will
+  automatically be turned on if a version of libsigc++ greater than 2.5.0 is
+  detected since those versions require C++11 to be enabled.
+
 
  1.3.0 -- 01 Dec 2013
 ----------------------
Index: svxlink-14.08.1/src/svxlink/modules/echolink/QsoImpl.cpp
===================================================================
--- svxlink-14.08.1.orig/src/svxlink/modules/echolink/QsoImpl.cpp
+++ svxlink-14.08.1/src/svxlink/modules/echolink/QsoImpl.cpp
@@ -222,11 +222,11 @@ QsoImpl::QsoImpl(const StationData &stat
   
   event_handler = new EventHandler(event_handler_script, 0);
   event_handler->playFile.connect(
-      	  bind(mem_fun(*msg_handler, &MsgHandler::playFile), false));
+      sigc::bind(mem_fun(*msg_handler, &MsgHandler::playFile), false));
   event_handler->playSilence.connect(
-      	  bind(mem_fun(*msg_handler, &MsgHandler::playSilence), false));
+      sigc::bind(mem_fun(*msg_handler, &MsgHandler::playSilence), false));
   event_handler->playTone.connect(
-      	  bind(mem_fun(*msg_handler, &MsgHandler::playTone), false));
+      sigc::bind(mem_fun(*msg_handler, &MsgHandler::playTone), false));
 
     // Workaround: Need to set the ID config variable and "logic_name"
     // variable to load the TCL script.
@@ -246,8 +246,9 @@ QsoImpl::QsoImpl(const StationData &stat
   m_qso.infoMsgReceived.connect(mem_fun(*this, &QsoImpl::onInfoMsgReceived));
   m_qso.chatMsgReceived.connect(mem_fun(*this, &QsoImpl::onChatMsgReceived));
   m_qso.stateChange.connect(mem_fun(*this, &QsoImpl::onStateChange));
-  m_qso.isReceiving.connect(bind(isReceiving.make_slot(), this));
-  m_qso.audioReceivedRaw.connect(bind(audioReceivedRaw.make_slot(), this));
+  m_qso.isReceiving.connect(sigc::bind(isReceiving.make_slot(), this));
+  m_qso.audioReceivedRaw.connect(
+      sigc::bind(audioReceivedRaw.make_slot(), this));
   
   prev_src = &m_qso;
   
Index: svxlink-14.08.1/src/svxlink/svxlink/LinkManager.cpp
===================================================================
--- svxlink-14.08.1.orig/src/svxlink/svxlink/LinkManager.cpp
+++ svxlink-14.08.1/src/svxlink/svxlink/LinkManager.cpp
@@ -218,9 +218,9 @@ bool LinkManager::initialize(const Async
     {
       link.timeout_timer = new Timer(link.timeout);
       link.timeout_timer->setEnable(false);
-      link.timeout_timer->expired.connect(
-          bind(mem_fun(LinkManager::instance(), &LinkManager::linkTimeout),
-               &link));
+      link.timeout_timer->expired.connect(sigc::bind(
+          mem_fun(LinkManager::instance(), &LinkManager::linkTimeout),
+          &link));
     }
 
       // Automatically activate the link, if one (or more) logics
@@ -301,7 +301,7 @@ void LinkManager::addLogic(Logic *logic)
     // Keep track of the newly added logics idle state so that we can start
     // and stop timeout timers.
   logic_info.idle_state_changed_con = logic->idleStateChanged.connect(
-      bind(mem_fun(*this, &LinkManager::logicIdleStateChanged), logic));
+      sigc::bind(mem_fun(*this, &LinkManager::logicIdleStateChanged), logic));
 
     // Add the logic to the logic map
   logic_map[logic->name()] = logic_info;
Index: svxlink-14.08.1/src/svxlink/trx/Emphasis.h
===================================================================
--- svxlink-14.08.1.orig/src/svxlink/trx/Emphasis.h
+++ svxlink-14.08.1/src/svxlink/trx/Emphasis.h
@@ -46,6 +46,7 @@ Foundation, Inc., 59 Temple Place, Suite
 
 #include <AsyncAudioFilter.h>
 //#include <AsyncAudioProcessor.h>
+#include <CppStdCompat.h>
 
 
 /****************************************************************************
@@ -178,16 +179,16 @@ class EmphasisBase : public Async::Audio
   protected:
 #if INTERNAL_SAMPLE_RATE == 16000
       // 0dB gain, f1=300Hz, fs=16kHz
-    static const double b0 = 0.058555891443177958410881700501704472117;
-    static const double b1 = 0.052700302299058421340305358171463012695;
-    static const double a0 = 1.0;
-    static const double a1 = -0.88874380625776361330991903741960413754;
+    static CONSTEXPR double b0 = 0.058555891443177958410881700501704472117;
+    static CONSTEXPR double b1 = 0.052700302299058421340305358171463012695;
+    static CONSTEXPR double a0 = 1.0;
+    static CONSTEXPR double a1 = -0.88874380625776361330991903741960413754;
 #elif INTERNAL_SAMPLE_RATE == 8000
       // 0dB gain, f1=300Hz, fs=8kHz
-    static const double b0 = 0.110940380645014949334559162252844544128 ;
-    static const double b1 = 0.099846342580711719416619587263994617388 ;
-    static const double a0 = 1.0;
-    static const double a1 = -0.789213276774273331248821250483160838485;
+    static CONSTEXPR double b0 = 0.110940380645014949334559162252844544128;
+    static CONSTEXPR double b1 = 0.099846342580711719416619587263994617388;
+    static CONSTEXPR double a0 = 1.0;
+    static CONSTEXPR double a1 = -0.789213276774273331248821250483160838485;
 #else
 #error "Only 16 and 8kHz sampling rate is supported by the pre- and de-emphasis filters."
 #endif
Index: svxlink-14.08.1/src/svxlink/trx/SigLevDetTone.h
===================================================================
--- svxlink-14.08.1.orig/src/svxlink/trx/SigLevDetTone.h
+++ svxlink-14.08.1/src/svxlink/trx/SigLevDetTone.h
@@ -45,6 +45,7 @@ Foundation, Inc., 59 Temple Place, Suite
  *
  ****************************************************************************/
 
+#include <CppStdCompat.h>
 
 
 /****************************************************************************
@@ -184,10 +185,10 @@ class SigLevDetTone : public SigLevDet
   private:
     class HammingWindow;
     
-    static const float    ALPHA         = 0.1f; // Time constant for IIR filter
-    static const unsigned BLOCK_SIZE    = 100;  // 160Hz bandwidth, 6.25ms
-    static const float    ENERGY_THRESH = 1.0e-6f;
-    static const float    DET_THRESH    = 0.7f; // Detection threshold
+    static CONSTEXPR float    ALPHA         = 0.1f; // IIR filter time constant
+    static CONSTEXPR unsigned BLOCK_SIZE    = 100;  // 160Hz bandwidth, 6.25ms
+    static CONSTEXPR float    ENERGY_THRESH = 1.0e-6f; // Min tone energy
+    static CONSTEXPR float    DET_THRESH    = 0.7f; // Detection threshold
 
     const int	        sample_rate;
     std::vector<int>    tone_siglev_map;
Index: svxlink-14.08.1/src/svxlink/trx/ToneDetector.h
===================================================================
--- svxlink-14.08.1.orig/src/svxlink/trx/ToneDetector.h
+++ svxlink-14.08.1/src/svxlink/trx/ToneDetector.h
@@ -46,6 +46,7 @@ Foundation, Inc., 59 Temple Place, Suite
  ****************************************************************************/
 
 #include <AsyncAudioSink.h>
+#include <CppStdCompat.h>
 
 
 /****************************************************************************
@@ -450,12 +451,12 @@ class ToneDetector : public sigc::tracka
   private:
     struct DetectorParams;
 
-    static const bool   DEFAULT_USE_WINDOWING		= true;
-    static const float  DEFAULT_TONE_ENERGY_THRESH	= 0.1f;
-    static const float  DEFAULT_PEAK_THRESH		= 10.0;
-    static const float  DEFAULT_PHASE_MEAN_THRESH	= 0.0f;
-    static const float  DEFAULT_PHASE_VAR_THRESH	= 0.0f;
-    static const int    DEFAULT_STABLE_COUNT_THRESH	= 3;
+    static CONSTEXPR bool   DEFAULT_USE_WINDOWING	= true;
+    static CONSTEXPR float  DEFAULT_TONE_ENERGY_THRESH	= 0.1f;
+    static CONSTEXPR float  DEFAULT_PEAK_THRESH		= 10.0;
+    static CONSTEXPR float  DEFAULT_PHASE_MEAN_THRESH	= 0.0f;
+    static CONSTEXPR float  DEFAULT_PHASE_VAR_THRESH	= 0.0f;
+    static CONSTEXPR int    DEFAULT_STABLE_COUNT_THRESH	= 3;
 
     float               tone_fq;
     int                 samples_left;
Index: svxlink-14.08.1/src/svxlink/trx/Voter.h
===================================================================
--- svxlink-14.08.1.orig/src/svxlink/trx/Voter.h
+++ svxlink-14.08.1/src/svxlink/trx/Voter.h
@@ -45,6 +45,7 @@ Foundation, Inc., 59 Temple Place, Suite
  ****************************************************************************/
 
 #include <AsyncConfig.h>
+#include <CppStdCompat.h>
 
 
 /****************************************************************************
@@ -184,19 +185,19 @@ class Voter : public Rx
   protected:
     
   private:
-    static const float	  DEFAULT_HYSTERESIS              = 1.5f;
-    static const unsigned DEFAULT_VOTING_DEALAY           = 0;
-    static const unsigned DEFAULT_SQL_CLOSE_REVOTE_DELAY  = 500;
-    static const unsigned DEFAULT_REVOTE_INTERVAL         = 1000;
-    static const unsigned DEFAULT_RX_SWITCH_DELAY         = 500;
-    
-    static const unsigned MAX_VOTING_DELAY                = 5000;
-    static const unsigned MAX_BUFFER_LENGTH               = MAX_VOTING_DELAY;
-    static const float	  MAX_HYSTERESIS                  = 2.0f;
-    static const unsigned MAX_SQL_CLOSE_REVOTE_DELAY      = 3000;
-    static const unsigned MIN_REVOTE_INTERVAL             = 100;
-    static const unsigned MAX_REVOTE_INTERVAL             = 60000;
-    static const unsigned MAX_RX_SWITCH_DELAY             = 3000;
+    static CONSTEXPR float    DEFAULT_HYSTERESIS             = 1.5f;
+    static CONSTEXPR unsigned DEFAULT_VOTING_DEALAY          = 0;
+    static CONSTEXPR unsigned DEFAULT_SQL_CLOSE_REVOTE_DELAY = 500;
+    static CONSTEXPR unsigned DEFAULT_REVOTE_INTERVAL        = 1000;
+    static CONSTEXPR unsigned DEFAULT_RX_SWITCH_DELAY        = 500;
+
+    static CONSTEXPR unsigned MAX_VOTING_DELAY               = 5000;
+    static CONSTEXPR unsigned MAX_BUFFER_LENGTH              = MAX_VOTING_DELAY;
+    static CONSTEXPR float    MAX_HYSTERESIS                 = 2.0f;
+    static CONSTEXPR unsigned MAX_SQL_CLOSE_REVOTE_DELAY     = 3000;
+    static CONSTEXPR unsigned MIN_REVOTE_INTERVAL            = 100;
+    static CONSTEXPR unsigned MAX_REVOTE_INTERVAL            = 60000;
+    static CONSTEXPR unsigned MAX_RX_SWITCH_DELAY            = 3000;
     
     class SatRx;
 
