- fixed build issue on Solaris (wrong compilation flags for multi-threading)
- fixed build issue on Linux redhat 3: python does not has tarfile module
diff --git a/SConstruct b/SConstruct
index 8728eff..be142c3 100644
--- a/SConstruct
+++ b/SConstruct
@@ -134,7 +134,7 @@
     env.Tool( 'sunc++' )
     env.Tool( 'sunlink' )
     env.Tool( 'sunar' )
-    env.Append( LIBS = ['pthreads'] )
+    env.Append( CCFLAGS = ['-mt'] )
 elif platform == 'vacpp':
     env.Tool( 'default' )
     env.Tool( 'aixcc' )
@@ -198,14 +198,21 @@
 env['BUILD_DIR'] = env.Dir(build_dir)
 env['ROOTBUILD_DIR'] = env.Dir(rootbuild_dir)
 env['DIST_DIR'] = DIST_DIR
-class SrcDistAdder:
-    def __init__( self, env ):
-        self.env = env
-    def __call__( self, *args, **kw ):
-        apply( self.env.SrcDist, (self.env['SRCDIST_TARGET'],) + args, kw )
+if 'TarGz' in env['BUILDERS']:
+	class SrcDistAdder:
+		def __init__( self, env ):
+			self.env = env
+		def __call__( self, *args, **kw ):
+			apply( self.env.SrcDist, (self.env['SRCDIST_TARGET'],) + args, kw )
+	env['SRCDIST_BUILDER'] = env.TarGz
+else: # If tarfile module is missing
+	class SrcDistAdder:
+		def __init__( self, env ):
+			pass
+		def __call__( self, *args, **kw ):
+			pass
 env['SRCDIST_ADD'] = SrcDistAdder( env )
 env['SRCDIST_TARGET'] = os.path.join( DIST_DIR, 'jsoncpp-src-%s.tar.gz' % env['JSONCPP_VERSION'] )
-env['SRCDIST_BUILDER'] = env.TarGz
                       
 env_testing = env.Clone( )
 env_testing.Append( LIBS = ['json_${LIB_NAME_SUFFIX}'] )
diff --git a/doc/sconscript b/doc/sconscript
index 62b481e..7b78a21 100644
--- a/doc/sconscript
+++ b/doc/sconscript
@@ -31,11 +31,12 @@
                              target = os.path.join( html_doc_path, 'index.html' ) )
     alias_doc_cmd = env.Alias('doc', doc_nodes )
     env.Alias('doc', env.Install( html_doc_path, '#README.txt' ) )
-    targz_path = os.path.join( env['DIST_DIR'], '%s.tar.gz' % html_dir )
-    zip_doc_cmd = env.TarGz( targz_path, [env.Dir(html_doc_path)],
-                             TARGZ_BASEDIR = env['ROOTBUILD_DIR'] )
-    env.Depends( zip_doc_cmd, alias_doc_cmd )
-    env.Alias( 'doc-dist', zip_doc_cmd )
+    if 'TarGz' in env['BUILDERS']:
+		targz_path = os.path.join( env['DIST_DIR'], '%s.tar.gz' % html_dir )
+		zip_doc_cmd = env.TarGz( targz_path, [env.Dir(html_doc_path)],
+								 TARGZ_BASEDIR = env['ROOTBUILD_DIR'] )
+		env.Depends( zip_doc_cmd, alias_doc_cmd )
+		env.Alias( 'doc-dist', zip_doc_cmd )
 ##    
 ##    doxyfile = env.SubstInFile( '#doc/doxyfile', 'doxyfile.in',
 ##                                SUBST_DICT = {
diff --git a/scons-tools/srcdist.py b/scons-tools/srcdist.py
index 3c6a151..864ff40 100644
--- a/scons-tools/srcdist.py
+++ b/scons-tools/srcdist.py
@@ -167,12 +167,13 @@
 ##      scan_check = DoxySourceScanCheck,
 ##   )
 
-   srcdist_builder = targz.makeBuilder( srcDistEmitter )
+   if targz.exists(env):
+      srcdist_builder = targz.makeBuilder( srcDistEmitter )
 
-   env['BUILDERS']['SrcDist'] = srcdist_builder
+      env['BUILDERS']['SrcDist'] = srcdist_builder
 
 def exists(env):
    """
    Make sure srcdist exists.
    """
-   return True
+   return targz.exists(env)
diff --git a/scons-tools/targz.py b/scons-tools/targz.py
index a655b11..f543200 100644
--- a/scons-tools/targz.py
+++ b/scons-tools/targz.py
@@ -51,28 +51,32 @@
                 tar.add(source_path, archive_name(source_path) )      # filename, arcname
         tar.close()
 
-targzAction = SCons.Action.Action(targz, varlist=['TARGZ_COMPRESSION_LEVEL','TARGZ_BASEDIR'])
+    targzAction = SCons.Action.Action(targz, varlist=['TARGZ_COMPRESSION_LEVEL','TARGZ_BASEDIR'])
 
-def makeBuilder( emitter = None ):
-   return SCons.Builder.Builder(action = SCons.Action.Action('$TARGZ_COM', '$TARGZ_COMSTR'),
-                                source_factory = SCons.Node.FS.Entry,
-                                source_scanner = SCons.Defaults.DirScanner,
-                                suffix = '$TARGZ_SUFFIX',
-                                multi = 1)
-TarGzBuilder = makeBuilder()
+    def makeBuilder( emitter = None ):
+        return SCons.Builder.Builder(action = SCons.Action.Action('$TARGZ_COM', '$TARGZ_COMSTR'),
+                                     source_factory = SCons.Node.FS.Entry,
+                                     source_scanner = SCons.Defaults.DirScanner,
+                                     suffix = '$TARGZ_SUFFIX',
+                                     multi = 1)
+    TarGzBuilder = makeBuilder()
 
-def generate(env):
-    """Add Builders and construction variables for zip to an Environment.
-       The following environnement variables may be set:
-       TARGZ_COMPRESSION_LEVEL: integer, [0-9]. 0: no compression, 9: best compression (same as gzip compression level).
-       TARGZ_BASEDIR: base-directory used to determine archive name (this allow archive name to be relative
-                      to something other than top-dir).
-    """
-    env['BUILDERS']['TarGz'] = TarGzBuilder
-    env['TARGZ_COM'] = targzAction
-    env['TARGZ_COMPRESSION_LEVEL'] = TARGZ_DEFAULT_COMPRESSION_LEVEL # range 0-9
-    env['TARGZ_SUFFIX']  = '.tar.gz'
-    env['TARGZ_BASEDIR'] = env.Dir('.')     # Sources archive name are made relative to that directory.
+    def generate(env):
+        """Add Builders and construction variables for zip to an Environment.
+           The following environnement variables may be set:
+           TARGZ_COMPRESSION_LEVEL: integer, [0-9]. 0: no compression, 9: best compression (same as gzip compression level).
+           TARGZ_BASEDIR: base-directory used to determine archive name (this allow archive name to be relative
+                          to something other than top-dir).
+        """
+        env['BUILDERS']['TarGz'] = TarGzBuilder
+        env['TARGZ_COM'] = targzAction
+        env['TARGZ_COMPRESSION_LEVEL'] = TARGZ_DEFAULT_COMPRESSION_LEVEL # range 0-9
+        env['TARGZ_SUFFIX']  = '.tar.gz'
+        env['TARGZ_BASEDIR'] = env.Dir('.')     # Sources archive name are made relative to that directory.
+else:
+    def generate(env):
+        pass
+
 
 def exists(env):
     return internal_targz