diff --git a/Tools/PyCmt/python/Cmt.py b/Tools/PyCmt/python/Cmt.py
index 3d82150066feca4784e21e1abf9d436f671bb42c..25fb6f9f674f3789b66bf33b518d8ca6eccf450a 100755
--- a/Tools/PyCmt/python/Cmt.py
+++ b/Tools/PyCmt/python/Cmt.py
@@ -15,7 +15,6 @@ import commands
 import re
 import sys
 import subprocess
-from string import rstrip
 
 ### monkey-patch subprocess (fwd compat w/ py-3.x) ----------------------------
 import PyCmt.bwdcompat
@@ -504,28 +503,9 @@ class CmtWrapper(object):
 
         Return: Tag or None on error
         """
-        ## This is not really CMT related but fits nicely in this module anyways
-        
-        svnroot = os.environ.get("SVNROOT")
-        if svnroot==None:
-            self.msg.error("SVNROOT is not set.")
-            return None
-
-        _cmd = "svn ls %s" % os.path.join(svnroot, fullPkgName, "tags")
-        if fullPkgName.startswith('Gaudi'):
-            _cmd = "svn ls %s" % os.path.join(svnroot, 'tags', fullPkgName)
-        self.msg.debug('running [%s]...', _cmd)        
-        p = subprocess.Popen(_cmd, shell = True,
-                             stdout = subprocess.PIPE, stderr = subprocess.PIPE)
-        tags = p.communicate()[0].splitlines()
-        if len(tags)==0 or p.returncode!=0: return None
-
-        pkg_name = os.path.basename(fullPkgName)
-
-        # enforce atlas convention of tags (pkgname-xx-yy-zz-aa)
-        tags = [t for t in tags if t.startswith(pkg_name)]
-        latest_tag = rstrip(tags[-1],"/\n ")
-        return latest_tag
+        from PyUtils.WorkAreaLib import get_latest_pkg_tag
+        return get_latest_pkg_tag(fullPkgName)
+
 
     def show_clients(self, pkgName):
         """return the list of clients of a given `pkgName` CMT package
diff --git a/Tools/PyCmt/python/pkgbuild/__init__.py b/Tools/PyCmt/python/pkgbuild/__init__.py
index f5845a1a8051d3376be38957bd8b4b33790b8425..c1bfa21d046107d9c577ce14783e954fdeb18860 100644
--- a/Tools/PyCmt/python/pkgbuild/__init__.py
+++ b/Tools/PyCmt/python/pkgbuild/__init__.py
@@ -151,8 +151,9 @@ def _cmt_to_autoconf(cmt):
 
         'CPPFLAGS': cmt('includes'),
         }
-    if ( len(cmt('target-icc')) + len(cmt('target-clang')) != 0 ):
-        cfg_env['LD']=cmt('cc')
+    if cfg_env['CC'].find ('clang')>=0 or cfg_env['CC'].find ('icc')>=0:
+        #cfg_env['LD']='ld'
+        cfg_env['LDSHARED']=cmt('cc') + ' -shared '
 
     # use_linkopts introduces <package>_linkopts which may confuse 'autoconf'
     pkg_name = cmt('package').strip()
@@ -177,6 +178,7 @@ def _cmt_to_autoconf(cmt):
                         .replace("-Wno-deprecated ", " ")\
                         .replace("--ccache-skip ", " ")\
                         .replace("-shared ", " ")\
+                        .replace("-std=c++11 ", " ")\
                         .replace("`checker_gccplugins_args`", " ")
 
     cfg_env['CXXFLAGS'] = cfg_env['CXXFLAGS']\
@@ -197,8 +199,7 @@ def _cmt_to_autoconf(cmt):
     cfg_env['CFLAGS']  += " -fno-strict-aliasing"
     cfg_env['FCFLAGS'] += " -fno-strict-aliasing"
     cfg_env['CXXFLAGS']+= " -fno-strict-aliasing"
-    
-    
+
     host_arch = 'x86_64' if 'x86_64' in os.environ['CMTCONFIG'] else 'i686'
     host_plat = 'none'
     if 'linux' in sys.platform:
@@ -230,6 +231,18 @@ def _cmt_to_autoconf(cmt):
     cfg_env['FC'] = cfg_env['FC'].replace('distcc', '').strip()
     cfg_env['compiler'] = cfg_env['compiler'].replace('distcc', '').strip()
     
+    # Move any extra arguments.
+    def move_args (compiler, flags):
+        l = cfg_env[compiler].split()
+        if len(l) > 1:
+            cfg_env[flags] += ' ' + ' '.join(l[1:])
+            cfg_env[compiler] = l[0]
+        return
+    move_args ('CC', 'CFLAGS')
+    move_args ('compiler', 'CFLAGS')
+    move_args ('CXX', 'CXXFLAGS')
+    #move_args ('LD', 'LDFLAGS')
+    
     cfg_env['F77'] = cfg_env['FC']
     cfg_env['FFLAGS'] = cfg_env['FCFLAGS']