Index: Basic/Diagnostic.cpp
===================================================================
--- Basic/Diagnostic.cpp	(revision 48151)
+++ Basic/Diagnostic.cpp	(working copy)
@@ -16,6 +16,9 @@
 #include <cassert>
 #include <vector>
 #include <map>
+
+#include <string.h>
+
 using namespace clang;
 
 //===----------------------------------------------------------------------===//
Index: include/clang/Rewrite/RewriteRope.h
===================================================================
--- include/clang/Rewrite/RewriteRope.h	(revision 48151)
+++ include/clang/Rewrite/RewriteRope.h	(working copy)
@@ -16,8 +16,8 @@
 
 #include "llvm/ADT/iterator"
 #include <list>
+#include <string.h>
 
-
 namespace clang {
 
 struct RopeRefCountString {
Index: AST/CFG.cpp
===================================================================
--- AST/CFG.cpp	(revision 48151)
+++ AST/CFG.cpp	(working copy)
@@ -25,8 +25,8 @@
 #include <iomanip>
 #include <algorithm>
 #include <sstream>
+#include <iostream>
 
-
 using namespace clang;
 
 namespace {
Index: Lex/ScratchBuffer.cpp
===================================================================
--- Lex/ScratchBuffer.cpp	(revision 48151)
+++ Lex/ScratchBuffer.cpp	(working copy)
@@ -14,6 +14,9 @@
 #include "clang/Lex/ScratchBuffer.h"
 #include "clang/Basic/SourceManager.h"
 #include "llvm/Support/MemoryBuffer.h"
+
+#include <string.h>
+
 using namespace clang;
 
 // ScratchBufSize - The size of each chunk of scratch memory.  Slightly less
Index: Driver/SerializationTest.cpp
===================================================================
--- Driver/SerializationTest.cpp	(revision 48151)
+++ Driver/SerializationTest.cpp	(working copy)
@@ -23,6 +23,7 @@
 #include "llvm/ADT/OwningPtr.h"
 #include "llvm/Support/Streams.h"
 #include <fstream>
+#include <string.h>
 
 using namespace clang;
 
