diff -rupN Source-orig/Base/Field/OSGMField.inl Source/Base/Field/OSGMField.inl
--- Source-orig/Base/Field/OSGMField.inl	2008-10-09 11:35:21.000000000 -0400
+++ Source/Base/Field/OSGMField.inl	2013-04-18 16:19:35.000000000 -0400
@@ -388,7 +388,7 @@ void MField<FieldTypeT, fieldNameSpace>:
 {
     FieldTypeT  tmpVal = FieldTypeT();
 
-    typedef typename osgIF< (MFieldTraits::StringConvertable &
+    typedef typename osgIF< (bool)(MFieldTraits::StringConvertable &
                              FieldTraits ::FromStringConvertable), 
                             MFieldTraits, 
                             ErrorFromToString<FieldTypeT> >::_IRet Converter;
@@ -404,7 +404,7 @@ std::string &MField<FieldTypeT, 
 {
     std::string tmpString;
 
-    typedef typename osgIF< (MFieldTraits::StringConvertable &
+    typedef typename osgIF< (bool)(MFieldTraits::StringConvertable &
                              FieldTraits ::ToStringConvertable),
                             MFieldTraits,
                             ErrorFromToString<FieldTypeT> >::_IRet Converter;
diff -rupN Source-orig/Base/Field/OSGMFieldVector.inl Source/Base/Field/OSGMFieldVector.inl
--- Source-orig/Base/Field/OSGMFieldVector.inl	2005-09-28 08:50:46.000000000 -0400
+++ Source/Base/Field/OSGMFieldVector.inl	2013-04-18 16:19:27.000000000 -0400
@@ -131,7 +131,7 @@ void MFieldVector<Tp, Alloc>::shareValue
 {
     if(bDeleteOld == true)
     {
-#if defined(OSG_LINUX_ICC) && !defined(OSG_ICC_GNU_COMPAT)
+#if (defined(OSG_LINUX_ICC) && !defined(OSG_ICC_GNU_COMPAT)) || defined(__clang__)
         this->_Destroy(this->MYFIRST, this->MYLAST);
 
         this->_Alval.deallocate(this->MYFIRST,
diff -rupN Source-orig/System/Cluster/Window/Base/OSGClusterWindow.cpp Source/System/Cluster/Window/Base/OSGClusterWindow.cpp
--- Source-orig/System/Cluster/Window/Base/OSGClusterWindow.cpp	2008-06-11 07:27:27.000000000 -0400
+++ Source/System/Cluster/Window/Base/OSGClusterWindow.cpp	2013-04-18 16:20:31.000000000 -0400
@@ -224,7 +224,7 @@ void ClusterWindow::init( void )
             FILE *pipe = popen(command.str().c_str(),"r");
 #endif
             if(!pipe)
-                SFATAL << "Error starting: " << command << std::endl;
+                SFATAL << "Error starting: " << command.str() << std::endl;
             pipes.push_back(pipe);
         }
         for(id=0 ; id<getMFServers()->size() ; ++id)
diff -rupN Source-orig/System/FileIO/BIN/OSGBINLoader.cpp Source/System/FileIO/BIN/OSGBINLoader.cpp
--- Source-orig/System/FileIO/BIN/OSGBINLoader.cpp	2008-06-11 07:27:29.000000000 -0400
+++ Source/System/FileIO/BIN/OSGBINLoader.cpp	2013-04-29 10:58:42.000000000 -0400
@@ -87,7 +87,7 @@ BINLoader::BINLoader(std::istream &is) :
     _fcInfoMap(),
     _countContainers(0),
     _vec_pRootNodes(),
-    _valid_stream(is != false)
+    _valid_stream(is)
 {
 }
 
diff -rupN Source-orig/System/FileIO/BIN/OSGBINWriter.cpp Source/System/FileIO/BIN/OSGBINWriter.cpp
--- Source-orig/System/FileIO/BIN/OSGBINWriter.cpp	2008-06-11 07:27:29.000000000 -0400
+++ Source/System/FileIO/BIN/OSGBINWriter.cpp	2013-04-18 16:27:37.000000000 -0400
@@ -72,7 +72,7 @@ BINWriter::BINWriter(std::ostream &os) :
     _fcIdMap(),
     _outFileHandler(os),
     _vec_pRootNodes(),
-    _valid_stream(os != false)
+    _valid_stream(os)
 {
 }
 
diff -rupN Source-orig/System/FileIO/Base/OSGZStream.inl Source/System/FileIO/Base/OSGZStream.inl
--- Source-orig/System/FileIO/Base/OSGZStream.inl	2008-06-05 01:01:14.000000000 -0400
+++ Source/System/FileIO/Base/OSGZStream.inl	2013-04-18 16:19:09.000000000 -0400
@@ -90,7 +90,7 @@ basic_zip_streambuf<charT, traits>::over
     }
     if (zip_to_stream(this->pbase(), w))
     {
-        setp(this->pbase(), this->epptr() - 1);
+        this->setp(this->pbase(), this->epptr() - 1);
         return c;
     }
     else
diff -rupN Source-orig/System/NodeCores/Drawables/Nurbs/Internal/OSGNurbsPatchSurface.cpp Source/System/NodeCores/Drawables/Nurbs/Internal/OSGNurbsPatchSurface.cpp
--- Source-orig/System/NodeCores/Drawables/Nurbs/Internal/OSGNurbsPatchSurface.cpp	2008-06-05 01:01:17.000000000 -0400
+++ Source/System/NodeCores/Drawables/Nurbs/Internal/OSGNurbsPatchSurface.cpp	2013-04-18 16:52:37.000000000 -0400
@@ -1445,7 +1445,7 @@ void CNurbsPatchSurface::CutCurve( const
 	vcl_curves.push_back( rclCurve );
 	vd_curvestart.push_back( 0.0 );
 	vd_curveend.push_back( 1.0 );
-	mm_curve_sort.insert( std::make_pair<const double, unsigned int>( 0.0, 0u ));
+	mm_curve_sort.insert( std::make_pair( 0.0, 0u ));
 	for( ui_curve = 0; ui_curve < ui_curve_cnt; ++ui_curve )
 	{
 		b_cut = false;
@@ -1464,7 +1464,7 @@ void CNurbsPatchSurface::CutCurve( const
 					vd_curvestart.push_back( ( vd_curvestart[ ui_curve ] + vd_curveend[ ui_curve ] ) * 0.5 );
 					vd_curveend.push_back( vd_curveend[ ui_curve ] );
 					vd_curveend[ ui_curve ] = vd_curvestart[ ui_curve_cnt ];
-					mm_curve_sort.insert( std::make_pair<const double, unsigned int>( vd_curvestart[ ui_curve_cnt ], ui_curve_cnt ) );
+					mm_curve_sort.insert( std::make_pair( vd_curvestart[ ui_curve_cnt ], ui_curve_cnt ) );
 					++ui_curve_cnt;
 					b_cut = true;
 					break;
@@ -1488,7 +1488,7 @@ void CNurbsPatchSurface::CutCurve( const
 						vd_curvestart.push_back( ( vd_curvestart[ ui_curve ] + vd_curveend[ ui_curve ] ) * 0.5 );
 						vd_curveend.push_back( vd_curveend[ ui_curve ] );
 						vd_curveend[ ui_curve ] = vd_curvestart[ ui_curve_cnt ];
-						mm_curve_sort.insert( std::make_pair<const double, unsigned int>( vd_curvestart[ ui_curve_cnt ], ui_curve_cnt ) );
+						mm_curve_sort.insert( std::make_pair( vd_curvestart[ ui_curve_cnt ], ui_curve_cnt ) );
 						++ui_curve_cnt;
 						b_cut = true;
 						break;
diff -rupN Source-orig/System/NodeCores/Drawables/VolRen/OSGDVRSimpleShader.cpp Source/System/NodeCores/Drawables/VolRen/OSGDVRSimpleShader.cpp
--- Source-orig/System/NodeCores/Drawables/VolRen/OSGDVRSimpleShader.cpp	2005-03-31 14:02:46.000000000 -0500
+++ Source/System/NodeCores/Drawables/VolRen/OSGDVRSimpleShader.cpp	2013-04-18 16:20:05.000000000 -0400
@@ -142,11 +142,11 @@ bool DVRSimpleShader::initialize(DVRVolu
        
     static Int16 formats[] =  { Image::OSG_L_PF,
                                 Image::OSG_LA_PF,
-                                Image::OSG_RGBA_DXT1,
-                                Image::OSG_RGBA_DXT3,
-                                Image::OSG_RGBA_DXT5,
+                                (Int16)Image::OSG_RGBA_DXT1,
+                                (Int16)Image::OSG_RGBA_DXT3,
+                                (Int16)Image::OSG_RGBA_DXT5,
                                 Image::OSG_RGBA_PF,
-                                Image::OSG_RGB_DXT1,
+                                (Int16)Image::OSG_RGB_DXT1,
                                 Image::OSG_RGB_PF,
                                 -1 };
     
diff -rupN Source-orig/System/Text/OSGTextFaceFactory.cpp Source/System/Text/OSGTextFaceFactory.cpp
--- Source-orig/System/Text/OSGTextFaceFactory.cpp	2010-04-30 07:55:23.000000000 -0400
+++ Source/System/Text/OSGTextFaceFactory.cpp	2013-04-29 13:33:16.000000000 -0400
@@ -99,7 +99,7 @@ TextFaceFactory::TextFaceFactory()
 #if defined(_WIN32)
     _backend = new TextWIN32Backend();
 #elif defined(__APPLE__)
-#ifdef __LP64__
+#if 1 // def __LP64__
     _backend = 0;
 #else
     _backend = new TextMacBackend();
