Index: xstow-0.5.1/src/cppdir.cpp
===================================================================
--- xstow-0.5.1.orig/src/cppdir.cpp	2010-07-02 22:58:05.083519936 -0700
+++ xstow-0.5.1/src/cppdir.cpp	2010-07-02 22:58:43.691519764 -0700
@@ -1,6 +1,8 @@
 #include "cppdir.h"
 #include "debug.h"
 
+#include <cstdlib>
+
 #define OUT(level) DEBUG_OUT( level, MODULE_CPPDIR)
 
 extern "C" {
Index: xstow-0.5.1/src/format.h
===================================================================
--- xstow-0.5.1.orig/src/format.h	2010-07-02 22:58:12.847529118 -0700
+++ xstow-0.5.1/src/format.h	2010-07-02 22:58:45.743520311 -0700
@@ -648,17 +648,17 @@
 		
 		switch( num_of_args )
 		{
-		    case 1: n = std::snprintf( buffer, buffer_size, format.c_str(),
+		    case 1: n = snprintf( buffer, buffer_size, format.c_str(),
 					       D( a ) ); break;
-		    case 2: n = std::snprintf( buffer, buffer_size, format.c_str(),
+		    case 2: n = snprintf( buffer, buffer_size, format.c_str(),
 					       D( a ), D( b ) ); break;
-		    case 3: n = std::snprintf( buffer, buffer_size, format.c_str(),
+		    case 3: n = snprintf( buffer, buffer_size, format.c_str(),
 					       D( a ), D( b ), D( c ) ); break;
-		    case 4: n = std::snprintf( buffer, buffer_size, format.c_str(),
+		    case 4: n = snprintf( buffer, buffer_size, format.c_str(),
 					       D( a ), D( b ), D( c ), D( d ) ); break;
-		    case 5: n = std::snprintf( buffer, buffer_size, format.c_str(),
+		    case 5: n = snprintf( buffer, buffer_size, format.c_str(),
 					       D( a ), D( b ), D( c ), D( d ), D( e ) ); break;
-		    case 6: n = std::snprintf( buffer, buffer_size, format.c_str(),
+		    case 6: n = snprintf( buffer, buffer_size, format.c_str(),
 					       D( a ), D( b ), D( c ), D( d ), D( e ), D( f ) ); break;
 		}
 		
Index: xstow-0.5.1/src/main.cpp
===================================================================
--- xstow-0.5.1.orig/src/main.cpp	2010-07-02 22:58:16.848019063 -0700
+++ xstow-0.5.1/src/main.cpp	2010-07-02 22:58:48.267520642 -0700
@@ -1,3 +1,4 @@
+#include <cstdlib>
 #include <iostream>
 
 #include "local_config.h"
Index: xstow-0.5.1/src/setup.cpp
===================================================================
--- xstow-0.5.1.orig/src/setup.cpp	2010-07-02 22:58:21.512019785 -0700
+++ xstow-0.5.1/src/setup.cpp	2010-07-02 22:58:50.315521850 -0700
@@ -5,6 +5,8 @@
 #include "debug.h"
 #include "nignore.h"
 
+#include <cstdlib>
+
 #undef OUT
 
 #define OUT( level ) DEBUG_OUT( level, MODULE_SETUP )
Index: xstow-0.5.1/src/tree.cpp
===================================================================
--- xstow-0.5.1.orig/src/tree.cpp	2010-07-02 22:58:26.079525922 -0700
+++ xstow-0.5.1/src/tree.cpp	2010-07-02 22:58:52.244020931 -0700
@@ -26,6 +26,7 @@
 
 
 #include <algorithm>
+#include <cstring>
 
 #define OUT(level) DEBUG_OUT(level, MODULE_TREE)
 
@@ -154,6 +155,15 @@
 	  setup.protect_dirs.dirs += ::getName( nn->file.get_name() );
       }
 
+      if( nn->getType() == FILE )
+      {
+          if( match_ignore( nn->file.get_name() ) )
+          {
+              DEBUG( OUT(2)( "file %s ignored\n", CppDir::concat_dir( getFullPathName(), nn->file.get_name() ) ) );
+              continue;
+          }
+      }
+
       childs->push_back( nn );
 
       if( recursion )
@@ -1233,3 +1243,5 @@
    
     return true;
 }
+
+
