diff --git a/libhdfs/hdfsJniHelper.c b/libhdfs/hdfsJniHelper.c
index 6d1a39f..b00e299 100644
--- a/libhdfs/hdfsJniHelper.c
+++ b/libhdfs/hdfsJniHelper.c
@@ -15,7 +15,6 @@
  */
 
 #include <string.h> 
-#include <error.h>
 #include "hdfsJniHelper.h"
 
 static pthread_mutex_t hdfsHashMutex = PTHREAD_MUTEX_INITIALIZER;
diff --git a/pipes/impl/HadoopPipes.cc b/pipes/impl/HadoopPipes.cc
index e250730..320725d 100644
--- a/pipes/impl/HadoopPipes.cc
+++ b/pipes/impl/HadoopPipes.cc
@@ -30,6 +30,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <strings.h>
+#include <unistd.h>
 #include <sys/socket.h>
 #include <pthread.h>
 
@@ -121,7 +122,7 @@ namespace HadoopPipes {
     static const char lineSeparator = '\n';
 
     void writeBuffer(const string& buffer) {
-      fprintf(stream, quoteString(buffer, "\t\n").c_str());
+      fprintf(stream, "%s", quoteString(buffer, "\t\n").c_str());
     }
 
   public:
@@ -698,14 +699,20 @@ namespace HadoopPipes {
       if (numReduces != 0) { 
         reducer = factory->createCombiner(*this);
         partitioner = factory->createPartitioner(*this);
-      }
-      if (reducer != NULL) {
-        int64_t spillSize = 100;
-        if (jobConf->hasKey("io.sort.mb")) {
-          spillSize = jobConf->getInt("io.sort.mb");
-        }
-        writer = new CombineRunner(spillSize * 1024 * 1024, this, reducer, 
-                                   uplink, partitioner, numReduces);
+	if (reducer != NULL) {
+	  int64_t spillSize = 100;
+	  if (jobConf->hasKey("io.sort.mb")) {
+	    spillSize = jobConf->getInt("io.sort.mb");
+	  }
+	  writer = new CombineRunner(spillSize * 1024 * 1024, this, reducer, 
+				     uplink, partitioner, numReduces);
+	} 
+      } else {
+	if (jobConf->hasKey("hadoop.pipes.java.recordwriter")) {
+	  if (jobConf->get("hadoop.pipes.java.recordwriter") == "false") {
+	    writer = factory->createRecordWriter(*this);
+	  }
+	}
       }
       hasTask = true;
     }
diff --git a/utils/impl/SerialUtils.cc b/utils/impl/SerialUtils.cc
index 03d009b..3736373 100644
--- a/utils/impl/SerialUtils.cc
+++ b/utils/impl/SerialUtils.cc
@@ -19,6 +19,7 @@
 #include "hadoop/StringUtils.hh"
 
 #include <errno.h>
+#include <stdint.h>
 #include <rpc/types.h>
 #include <rpc/xdr.h>
 #include <string>
@@ -252,13 +253,15 @@ namespace HadoopUtils {
     stream.write(buf, sizeof(float));
   }
 
-  void deserializeFloat(float& t, InStream& stream)
+  float deserializeFloat(InStream& stream)
   {
+    float t;
     char buf[sizeof(float)];
     stream.read(buf, sizeof(float));
     XDR xdrs;
     xdrmem_create(&xdrs, buf, sizeof(float), XDR_DECODE);
     xdr_float(&xdrs, &t);
+    return t;
   }
 
   void serializeString(const std::string& t, OutStream& stream)
