diff DTT/src/cmd/cmdapi.hh DTT/src/cmd/cmdapi.hh
--- DTT/src/cmd/cmdapi.hh
+++ DTT/src/cmd/cmdapi.hh
@@ -519,7 +519,7 @@ namespace diag {
       /// last notification message lines
       std::deque<std::string> lastnotification;
       /// notification message list
-      std::auto_ptr<std::ostringstream>	nMessages;
+      std::unique_ptr<std::ostringstream>	nMessages;
    
       /** Prints a line to the output of the command line.
           @param s message string
diff DTT/src/cmd/gdscmd.cc DTT/src/cmd/gdscmd.cc
--- DTT/src/cmd/gdscmd.cc
+++ DTT/src/cmd/gdscmd.cc
@@ -178,7 +178,7 @@ extern "C"
       }
    
       /* initialize supervisory */
-      auto_ptr<supervisory> 	super (s->self());
+      unique_ptr<supervisory> 	super (s->self());
       if (super.get() == 0) {
          testErrmsg = "Unable to create supervisory task";
          err = -3;
diff DTT/src/diag/stdsuper.hh DTT/src/diag/stdsuper.hh
--- DTT/src/diag/stdsuper.hh
+++ DTT/src/diag/stdsuper.hh
@@ -153,9 +153,9 @@ namespace diag {
       /// excitation manager for the test signals
       excitationManager		testExc;
       /// test iterator
-      std::auto_ptr<testiterator> testiter;
+      std::unique_ptr<testiterator> testiter;
       /// test
-      std::auto_ptr<diagtest>	test;
+      std::unique_ptr<diagtest>	test;
    
       /** Runs the standard supervisory task in real time mode.
           @memo Run real-time method.
diff DTT/src/gui/diagctrl.hh DTT/src/gui/diagctrl.hh
--- DTT/src/gui/diagctrl.hh
+++ DTT/src/gui/diagctrl.hh
@@ -475,7 +475,7 @@ namespace diag {
       /// Sweep type
       Int_t		fSweepType;
       /// Sweep points data array
-      std::auto_ptr<BasicDataDescriptor> fSweepPoints;
+      std::unique_ptr<BasicDataDescriptor> fSweepPoints;
       /// Pre-trigger time
       Double_t		fTimePreTrig;
       /// Dead time
diff DTT/src/gui/diagplot.cc DTT/src/gui/diagplot.cc
--- DTT/src/gui/diagplot.cc
+++ DTT/src/gui/diagplot.cc
@@ -154,7 +154,7 @@ namespace ligogui {
          free (fTable); fTable = 0;
          // get table
          Int_t width = fXYData ? (fTableWidth + 1) : fTableWidth;
-         fCmdLine->getData (string (fName), fTable, 
+         fCmdLine->getData (string(fName.Data()), fTable, 
                            fLength * width, (IsComplex() ? 1 : 0));
          int d = IsComplex() ? 2 : 1;
          if (fTable != 0) {
@@ -186,12 +186,12 @@ namespace ligogui {
          // get X
          if (fXYData) {
             if (fX != 0) free (fX);
-            fCmdLine->getData (string (fName), fX, fLength, 
+            fCmdLine->getData (string(fName.Data()), fX, fLength, 
                               (IsComplex() ? 2 : 0), fOffsetX);
          }
          // get Y
          if (fY != 0) free (fY);
-         fCmdLine->getData (string (fName), fY, fLength, 
+         fCmdLine->getData (string(fName.Data()), fY, fLength, 
                            (IsComplex() ? 1 : 0), fOffsetY);
          // eliminate zeros
          if (fNoZero && fXYData && (fX != 0) && (fY != 0)) {
diff DTT/src/storage/gdsdatum.hh DTT/src/storage/gdsdatum.hh
--- DTT/src/storage/gdsdatum.hh
+++ DTT/src/storage/gdsdatum.hh
@@ -1998,7 +1998,7 @@ template <class T>
       /// currently active file type
       filetype 		activeFiletype;
       /// XML text buffer for text handler
-      std::auto_ptr<std::stringstream> XML_text;
+      std::unique_ptr<std::stringstream> XML_text;
       /// XML start element handler callback
       static void startelement (gdsStorage* dat, const char* name, 
                         const char** attributes);
diff Diag_Services/dfm/dataacc.cc Diag_Services/dfm/dataacc.cc
--- Diag_Services/dfm/dataacc.cc
+++ Diag_Services/dfm/dataacc.cc
@@ -232,7 +232,7 @@ namespace dfm {
          }
       }
       // get output channel list
-      typedef std::auto_ptr<fantom::channelquerylist> chn_ptr;
+      typedef std::unique_ptr<fantom::channelquerylist> chn_ptr;
       chn_ptr chns (new fantom::channelquerylist);
       if (!data.getOutputChannelList (*chns)) {
          chns.reset ();
diff Diag_Services/fantom/fchannel.cc Diag_Services/fantom/fchannel.cc
--- Diag_Services/fantom/fchannel.cc
+++ Diag_Services/fantom/fchannel.cc
@@ -6,10 +6,11 @@ VCSID("@(#)$Id$");
 #include <stdio.h>
 #include <string.h>
 #include <strings.h>
-#include <iostream>
-#include <fstream>
 #include <algorithm>
 #include <cmath>
+#include <iostream>
+#include <fstream>
+#include <functional>
 #include "fantom/fchannel.hh"
 
 namespace fantom {
@@ -347,8 +348,13 @@ namespace fantom {
       bool (channelquery::*test) (const char*) const = 
          &channelquery::match;
       wildcardlist::const_iterator i =
-         find_if (fWList.begin(), fWList.end(), 
-                 bind2nd (mem_fun_ref (test), n.c_str()));
+	find_if (fWList.begin(), fWList.end(), 
+#if __cplusplus >= 201100L
+		 std::bind( std::mem_fn(test), std::placeholders::_1, n.c_str() )
+#else
+		 bind2nd( mem_fun_ref(test), n.c_str() )
+#endif
+		  );
       if (i != fWList.end()) {
          return &(*i);
       }
diff GUI/dttview/TLGExport.cc GUI/dttview/TLGExport.cc
--- GUI/dttview/TLGExport.cc
+++ GUI/dttview/TLGExport.cc
@@ -41,7 +41,6 @@ namespace ligogui {
    using namespace std;
    using namespace xml;
 
-
 //______________________________________________________________________________
    static const char* const gExportTypes[] = { 
    "ASCII", "*.txt",
@@ -622,9 +621,9 @@ template <class f>
                if (!ex.fColumn[i].fInclude) {
                   continue;
                }
-               names.insert (string (ex.fColumn[i].fAChn));
+               names.insert (string(ex.fColumn[i].fAChn.Data()));
                if (ex.fColumn[i].fBChn.Length() != 0) {
-                  names.insert (string (ex.fColumn[i].fBChn));
+		 names.insert (string(ex.fColumn[i].fBChn.Data()));
                }
             }
             writeCal (out, names, caltable);
diff GUI/filterwiz/TLGFilterWizard.cc GUI/filterwiz/TLGFilterWizard.cc
--- GUI/filterwiz/TLGFilterWizard.cc
+++ GUI/filterwiz/TLGFilterWizard.cc
@@ -1306,7 +1306,7 @@ TLGFilterWizWindow::FileErrorIndication(Bool_t error)
 
       if (my_debug) cerr << "READ FILE " << (file ? file : "") << endl;
       fModule->RemoveEntries (0, 10000);
-      string fullname = string (fCurDir) + "/" + (file ? file : "");
+      string fullname = string(fCurDir.Data()) + "/" + (file ? file : "");
       fFilterFile.SetAnySampleRate(fAnySample) ;
       if (!file || !fFilterFile.read (fullname.c_str())) 
       {
@@ -1430,7 +1430,7 @@ TLGFilterWizWindow::FileErrorIndication(Bool_t error)
       // save
       // Make changes to the way files are saved here...  JCB
       //filename = string (fCurDir) + "/" + filename; // Removed, it causes issues with "foton dir1/file.txt"
-      filename = fFilterFile.getRealFilename(filename, string(fCurDir)) ;  // Follow the symbolic link? - JCB
+      filename = fFilterFile.getRealFilename(filename, string(fCurDir.Data())) ;  // Follow the symbolic link? - JCB
       string tmpfilename = string (filename) + ".tmp" ;
 
       {