diff --git a/Driver/HTMLDiagnostics.cpp b/Driver/HTMLDiagnostics.cpp
index 760ef25..541e49b 100644
--- a/Driver/HTMLDiagnostics.cpp
+++ b/Driver/HTMLDiagnostics.cpp
@@ -233,7 +233,7 @@
 
   // Add CSS, header, and footer.
   
-  html::AddHeaderFooterInternalBuiltinCSS(R, FileID);
+  html::AddHeaderFooterInternalBuiltinCSS(R, FileID, Entry->getName());
   
   // Get the rewrite buffer.
   const RewriteBuffer *Buf = R.getRewriteBufferFor(FileID);
diff --git a/Driver/HTMLPrint.cpp b/Driver/HTMLPrint.cpp
index e6e6ab7..b06d52d 100644
--- a/Driver/HTMLPrint.cpp
+++ b/Driver/HTMLPrint.cpp
@@ -17,6 +17,7 @@
 #include "clang/Rewrite/HTMLRewrite.h"
 #include "clang/Basic/Diagnostic.h"
 #include "clang/Basic/SourceManager.h"
+#include "clang/Basic/FileManager.h"
 #include "clang/AST/ASTContext.h"
 
 using namespace clang;
@@ -59,8 +60,10 @@
 
   // Format the file.
   unsigned FileID = R.getSourceMgr().getMainFileID();
+  const FileEntry* Entry = R.getSourceMgr().getFileEntryForID(FileID);
+  
   html::AddLineNumbers(R, FileID);
-  html::AddHeaderFooterInternalBuiltinCSS(R, FileID);
+  html::AddHeaderFooterInternalBuiltinCSS(R, FileID, Entry->getName());
 
   // If we have a preprocessor, relex the file and syntax highlight.
   // We might not have a preprocessor if we come from a deserialized AST file,
diff --git a/include/clang/Rewrite/HTMLRewrite.h b/include/clang/Rewrite/HTMLRewrite.h
index 1ebbade..dc4d3bf 100644
--- a/include/clang/Rewrite/HTMLRewrite.h
+++ b/include/clang/Rewrite/HTMLRewrite.h
@@ -62,7 +62,8 @@
 
   void AddLineNumbers(Rewriter& R, unsigned FileID);  
   
-  void AddHeaderFooterInternalBuiltinCSS(Rewriter& R, unsigned FileID);
+  void AddHeaderFooterInternalBuiltinCSS(Rewriter& R, unsigned FileID, 
+                                         const char *title = NULL);
 
   /// SyntaxHighlight - Relex the specified FileID and annotate the HTML with
   /// information about keywords, comments, etc.
diff --git a/lib/Rewrite/HTMLRewrite.cpp b/lib/Rewrite/HTMLRewrite.cpp
index f17aa53..0a32df1 100644
--- a/lib/Rewrite/HTMLRewrite.cpp
+++ b/lib/Rewrite/HTMLRewrite.cpp
@@ -257,7 +257,8 @@
   RB.InsertTextAfter(FileEnd - FileBeg, "</table>", strlen("</table>"));
 }
 
-void html::AddHeaderFooterInternalBuiltinCSS(Rewriter& R, unsigned FileID) {
+void html::AddHeaderFooterInternalBuiltinCSS(Rewriter& R, unsigned FileID, 
+                                             const char *title) {
 
   const llvm::MemoryBuffer *Buf = R.getSourceMgr().getBuffer(FileID);
   const char* FileStart = Buf->getBufferStart();
@@ -266,11 +267,14 @@
   SourceLocation StartLoc = SourceLocation::getFileLoc(FileID, 0);
   SourceLocation EndLoc = SourceLocation::getFileLoc(FileID, FileEnd-FileStart);
 
-  // Generate header
-  R.InsertCStrBefore(StartLoc,
-      "<!doctype html>\n" // Use HTML 5 doctype
-      "<html>\n<head>\n"
-      "<style type=\"text/css\">\n"
+  std::ostringstream os;
+  os << "<!doctype html>\n" // Use HTML 5 doctype
+        "<html>\n<head>\n";
+  
+  if (title)
+    os << "<title>" << html::EscapeText(title) << "</title>\n";
+  
+  os << "<style type=\"text/css\">\n"
       " body { color:#000000; background-color:#ffffff }\n"
       " body { font-family:Helvetica, sans-serif; font-size:10pt }\n"
       " h1 { font-size:14pt }\n"
@@ -314,8 +318,10 @@
       " td.rowname {\n"
       "   text-align:right; font-weight:bold; color:#444444;\n"
       "   padding-right:2ex; }\n"
-      "</style>\n</head>\n<body>");
+      "</style>\n</head>\n<body>";
 
+  // Generate header
+  R.InsertStrBefore(StartLoc, os.str());
   // Generate footer
   
   R.InsertCStrAfter(EndLoc, "</body></html>\n");
