diff --git a/tools/bugpoint/CrashDebugger.cpp b/tools/bugpoint/CrashDebugger.cpp
index 84d4d40..b34d880 100644
--- a/tools/bugpoint/CrashDebugger.cpp
+++ b/tools/bugpoint/CrashDebugger.cpp
@@ -91,7 +91,7 @@
 };
 
 bool ReduceCrashingFunctions::TestFuncs(std::vector<Function*> &Funcs) {
-  // Clone the program to try hacking it appart...
+  // Clone the program to try hacking it apart...
   Module *M = CloneModule(BD.Program);
   
   // Convert list to set for fast lookup...
@@ -153,7 +153,7 @@
 };
 
 bool ReduceCrashingBlocks::TestBlocks(std::vector<BasicBlock*> &BBs) {
-  // Clone the program to try hacking it appart...
+  // Clone the program to try hacking it apart...
   Module *M = CloneModule(BD.Program);
   
   // Convert list to set for fast lookup...
diff --git a/tools/bugpoint/OptimizerDriver.cpp b/tools/bugpoint/OptimizerDriver.cpp
index fe9112e..6aa23e8 100644
--- a/tools/bugpoint/OptimizerDriver.cpp
+++ b/tools/bugpoint/OptimizerDriver.cpp
@@ -1,8 +1,8 @@
 //===- OptimizerDriver.cpp - Allow BugPoint to run passes safely ----------===//
 //
 // This file defines an interface that allows bugpoint to run various passes
-// without the threat of a buggy pass corrupting bugpoint (of course bugpoint
-// may have it's own bugs, but that's another story...).  It acheives this by
+// without the threat of a buggy pass corrupting bugpoint (of course, bugpoint
+// may have its own bugs, but that's another story...).  It achieves this by
 // forking a copy of itself and having the child process do the optimizations.
 // If this client dies, we can always fork a new one.  :)
 //
@@ -95,7 +95,7 @@
 }
 
 /// runPasses - Run the specified passes on Program, outputting a bytecode file
-/// and writting the filename into OutputFile if successful.  If the
+/// and writing the filename into OutputFile if successful.  If the
 /// optimizations fail for some reason (optimizer crashes), return true,
 /// otherwise return false.  If DeleteOutput is set to true, the bytecode is
 /// deleted on success, and the filename string is undefined.  This prints to
diff --git a/tools/gccld/gccld.cpp b/tools/gccld/gccld.cpp
index 116cf0b..cd4cce0 100644
--- a/tools/gccld/gccld.cpp
+++ b/tools/gccld/gccld.cpp
@@ -215,7 +215,8 @@
   // We always look first in the current directory when searching for libraries.
   LibPaths.insert(LibPaths.begin(), ".");
 
-  // If the user specied an extra search path in their environment, respect it.
+  // If the user specified an extra search path in their environment, respect
+  // it.
   if (char *SearchPath = getenv("LLVM_LIB_SEARCH_PATH"))
     LibPaths.push_back(SearchPath);
 
diff --git a/tools/llvm-ar/llvm-ar.cpp b/tools/llvm-ar/llvm-ar.cpp
index 7634a1a..c1ec7ec 100644
--- a/tools/llvm-ar/llvm-ar.cpp
+++ b/tools/llvm-ar/llvm-ar.cpp
@@ -90,7 +90,7 @@
 // 1) Generate the header for the symbol table. This is a normal
 //    archive member header, but it has a zero length name.
 // 2) For each archive member file, stat the file and parse the bytecode
-//    Store cummulative offset (file size + header size).
+//    Store cumulative offset (file size + header size).
 // 3) Loop over all the symbols for the current member file, 
 //    add offset entry to offset vector, and add symbol name to its vector.
 //    Note: The symbol name vector is a vector of chars to speed up calculating
@@ -206,7 +206,7 @@
   //Adjustment to offset to start files on even byte boundaries
   unsigned adjust = 0;
   
-  //Update offsets write symbol tabel to archive.
+  //Update offsets write symbol table to archive.
   for(unsigned i=0; i<offsets.size(); ++i) {
     char output[4];
     offsets[i] = offsets[i] + symbolTableSize + SARMAG;
