diff --git a/tools/dis/dis.cpp b/tools/dis/dis.cpp
index 361564c..13c4da3 100644
--- a/tools/dis/dis.cpp
+++ b/tools/dis/dis.cpp
@@ -27,10 +27,10 @@
   c,                  // Generate C code
 };
 
-static cl::opt<string>
+static cl::opt<std::string>
 InputFilename(cl::Positional, cl::desc("<input bytecode>"), cl::init("-"));
 
-static cl::opt<string>
+static cl::opt<std::string>
 OutputFilename("o", cl::desc("Override output filename"),
                cl::value_desc("filename"));
 
diff --git a/tools/extract/extract.cpp b/tools/extract/extract.cpp
index 5c71264..93e5fc1 100644
--- a/tools/extract/extract.cpp
+++ b/tools/extract/extract.cpp
@@ -17,13 +17,13 @@
 #include <memory>
 
 // InputFilename - The filename to read from.
-static cl::opt<string>
+static cl::opt<std::string>
 InputFilename(cl::Positional, cl::desc("<input bytecode file>"),
               cl::init("-"), cl::value_desc("filename"));
               
 
 // ExtractFunc - The function to extract from the module... defaults to main.
-static cl::opt<string>
+static cl::opt<std::string>
 ExtractFunc("func", cl::desc("Specify function to extract"), cl::init("main"),
             cl::value_desc("function"));
 
diff --git a/tools/gccas/gccas.cpp b/tools/gccas/gccas.cpp
index c59b6eb..974e9e2 100644
--- a/tools/gccas/gccas.cpp
+++ b/tools/gccas/gccas.cpp
@@ -25,10 +25,10 @@
 // FIXME: This should eventually be parameterized...
 static TargetData TD("opt target");
 
-static cl::opt<string>
+static cl::opt<std::string>
 InputFilename(cl::Positional, cl::desc("<input llvm assembly>"), cl::Required);
 
-static cl::opt<string> 
+static cl::opt<std::string> 
 OutputFilename("o", cl::desc("Override output filename"),
                cl::value_desc("filename"));
 
diff --git a/tools/gccld/gccld.cpp b/tools/gccld/gccld.cpp
index 70e0130..5649796 100644
--- a/tools/gccld/gccld.cpp
+++ b/tools/gccld/gccld.cpp
@@ -30,22 +30,22 @@
 #include <sys/stat.h>
 using std::cerr;
 
-static cl::list<string> 
+static cl::list<std::string> 
 InputFilenames(cl::Positional, cl::desc("<input bytecode files>"),
                cl::OneOrMore);
 
-static cl::opt<string> 
+static cl::opt<std::string> 
 OutputFilename("o", cl::desc("Override output filename"), cl::init("a.out"),
                cl::value_desc("filename"));
 
 static cl::opt<bool>    
 Verbose("v", cl::desc("Print information about actions taken"));
 
-static cl::list<string> 
+static cl::list<std::string> 
 LibPaths("L", cl::desc("Specify a library search path"), cl::Prefix,
          cl::value_desc("directory"));
 
-static cl::list<string> 
+static cl::list<std::string> 
 Libraries("l", cl::desc("Specify libraries to link to"), cl::Prefix,
           cl::value_desc("library prefix"));
 
diff --git a/tools/llvm-dis/dis.cpp b/tools/llvm-dis/dis.cpp
index 361564c..13c4da3 100644
--- a/tools/llvm-dis/dis.cpp
+++ b/tools/llvm-dis/dis.cpp
@@ -27,10 +27,10 @@
   c,                  // Generate C code
 };
 
-static cl::opt<string>
+static cl::opt<std::string>
 InputFilename(cl::Positional, cl::desc("<input bytecode>"), cl::init("-"));
 
-static cl::opt<string>
+static cl::opt<std::string>
 OutputFilename("o", cl::desc("Override output filename"),
                cl::value_desc("filename"));
 
diff --git a/tools/llvm-dis/llvm-dis.cpp b/tools/llvm-dis/llvm-dis.cpp
index 361564c..13c4da3 100644
--- a/tools/llvm-dis/llvm-dis.cpp
+++ b/tools/llvm-dis/llvm-dis.cpp
@@ -27,10 +27,10 @@
   c,                  // Generate C code
 };
 
-static cl::opt<string>
+static cl::opt<std::string>
 InputFilename(cl::Positional, cl::desc("<input bytecode>"), cl::init("-"));
 
-static cl::opt<string>
+static cl::opt<std::string>
 OutputFilename("o", cl::desc("Override output filename"),
                cl::value_desc("filename"));
 
diff --git a/tools/llvm-extract/llvm-extract.cpp b/tools/llvm-extract/llvm-extract.cpp
index 5c71264..93e5fc1 100644
--- a/tools/llvm-extract/llvm-extract.cpp
+++ b/tools/llvm-extract/llvm-extract.cpp
@@ -17,13 +17,13 @@
 #include <memory>
 
 // InputFilename - The filename to read from.
-static cl::opt<string>
+static cl::opt<std::string>
 InputFilename(cl::Positional, cl::desc("<input bytecode file>"),
               cl::init("-"), cl::value_desc("filename"));
               
 
 // ExtractFunc - The function to extract from the module... defaults to main.
-static cl::opt<string>
+static cl::opt<std::string>
 ExtractFunc("func", cl::desc("Specify function to extract"), cl::init("main"),
             cl::value_desc("function"));
 
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index 01be7eb..9fbfea7 100644
--- a/tools/opt/opt.cpp
+++ b/tools/opt/opt.cpp
@@ -20,7 +20,7 @@
 #include <algorithm>
 
 using std::cerr;
-
+using std::string;
 
 //===----------------------------------------------------------------------===//
 // PassNameParser class - Make use of the pass registration mechanism to
