diff --git a/Driver/CacheTokens.cpp b/Driver/CacheTokens.cpp
index 7aa63b3..1d33105 100644
--- a/Driver/CacheTokens.cpp
+++ b/Driver/CacheTokens.cpp
@@ -133,12 +133,13 @@
 
 void PTHWriter::EmitToken(const Token& T) {
   uint32_t fpos = PP.getSourceManager().getFullFilePos(T.getLocation());
-  Emit8(T.getKind());
-  Emit8(T.getFlags());
-  Emit24(ResolveID(T.getIdentifierInfo()));
+  
+  Emit32(((uint32_t) T.getKind()) |
+         (((uint32_t) T.getFlags()) << 8) |
+         (((uint32_t) T.getLength()) << 16));
+  Emit32(ResolveID(T.getIdentifierInfo()));
   Emit32(fpos);
-  Emit16(T.getLength());
-
+  
   // For specific tokens we cache their spelling.
   if (T.getIdentifierInfo())
     return;
@@ -270,9 +271,10 @@
 }
 
 PCHEntry PTHWriter::LexTokens(Lexer& L) {
-
-  // Record the location within the token file.
-  Offset off = (Offset) Out.tell();
+  // Pad 0's so that we emit tokens to a 4-byte alignment.
+  // This speed up reading them back in.
+  Offset off = (Offset) Out.tell();  
+  for (unsigned Pad = off % 4 ; Pad != 0 ; --Pad, ++off) Emit8(0);
   
   // Keep track of matching '#if' ... '#endif'.
   typedef std::vector<std::pair<Offset, unsigned> > PPCondTable;
diff --git a/lib/Lex/PTHLexer.cpp b/lib/Lex/PTHLexer.cpp
index 7df8e35..87eb255 100644
--- a/lib/Lex/PTHLexer.cpp
+++ b/lib/Lex/PTHLexer.cpp
@@ -25,7 +25,7 @@
 #include "llvm/ADT/OwningPtr.h"
 using namespace clang;
 
-#define DISK_TOKEN_SIZE (1+1+3+4+2)
+#define DISK_TOKEN_SIZE (1+1+2+4+4)
 
 //===----------------------------------------------------------------------===//
 // Utility methods for reading from the mmap'ed PTH file.
@@ -107,11 +107,14 @@
   const unsigned char *CurPtrShadow = CurPtr;  
 
   // Read in the data for the token.
-  tok::TokenKind TKind = (tok::TokenKind) Read8(CurPtrShadow);
-  Token::TokenFlags TFlags = (Token::TokenFlags) Read8(CurPtrShadow);
-  uint32_t IdentifierID = Read24(CurPtrShadow);
+  unsigned Word0 = Read32(CurPtrShadow);
+  uint32_t IdentifierID = Read32(CurPtrShadow);
   uint32_t FileOffset = Read32(CurPtrShadow);
-  uint32_t Len = Read16(CurPtrShadow);
+  
+  tok::TokenKind TKind = (tok::TokenKind) (Word0 & 0xFF);
+  Token::TokenFlags TFlags = (Token::TokenFlags) ((Word0 >> 8) & 0xFF);
+  uint32_t Len = Word0 >> 16;
+
   CurPtr = CurPtrShadow;
   
   //===--------------------------------------==//
