diff --git a/RELEASING b/RELEASING
index c4973b2..fd4affb 100644
--- a/RELEASING
+++ b/RELEASING
@@ -2,11 +2,16 @@
 
 Push new release branch:
 1. Consider sending a heads-up to the ninja-build mailing list first
-2. update src/version.cc with new version (with ".git"), commit to master
+2. update src/version.cc with new version (with ".git"), then
+       git commit -a -m 'mark this 1.5.0.git'
 3. git checkout release; git merge master
 4. fix version number in src/version.cc (it will likely conflict in the above)
 5. fix version in doc/manual.asciidoc
 6. commit, tag, push (don't forget to push --tags)
+       git commit -a -m v1.5.0; git push origin release
+       git tag v1.5.0; git push --tags
+       # Push the 1.5.0.git change on master too:
+       git checkout master; git push origin master
 7. construct release notes from prior notes
    credits: git shortlog -s --no-merges REV..
 
diff --git a/doc/manual.asciidoc b/doc/manual.asciidoc
index bacb5f6..28fd9d3 100644
--- a/doc/manual.asciidoc
+++ b/doc/manual.asciidoc
@@ -1,7 +1,7 @@
 Ninja
 =====
 Evan Martin <martine@danga.com>
-v1.5.0, June 2014
+v1.5.1, June 2014
 
 
 Introduction
diff --git a/src/disk_interface.cc b/src/disk_interface.cc
index ae2146e..b170f63 100644
--- a/src/disk_interface.cc
+++ b/src/disk_interface.cc
@@ -117,8 +117,6 @@
     return false;
   }
   do {
-    if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
-      continue;
     string lowername = ffd.cFileName;
     transform(lowername.begin(), lowername.end(), lowername.begin(), ::tolower);
     stamps->insert(make_pair(lowername,
diff --git a/src/disk_interface_test.cc b/src/disk_interface_test.cc
index f4e0bb0..b2e8cb5 100644
--- a/src/disk_interface_test.cc
+++ b/src/disk_interface_test.cc
@@ -76,6 +76,18 @@
   EXPECT_GT(disk_.Stat("file"), 1);
 }
 
+TEST_F(DiskInterfaceTest, StatExistingDir) {
+  ASSERT_TRUE(disk_.MakeDir("subdir"));
+  ASSERT_TRUE(disk_.MakeDir("subdir/subsubdir"));
+  EXPECT_GT(disk_.Stat("."), 1);
+  EXPECT_GT(disk_.Stat("subdir"), 1);
+  EXPECT_GT(disk_.Stat("subdir/subsubdir"), 1);
+
+  EXPECT_EQ(disk_.Stat("subdir"), disk_.Stat("subdir/."));
+  EXPECT_EQ(disk_.Stat("subdir"), disk_.Stat("subdir/subsubdir/.."));
+  EXPECT_EQ(disk_.Stat("subdir/subsubdir"), disk_.Stat("subdir/subsubdir/."));
+}
+
 #ifdef _WIN32
 TEST_F(DiskInterfaceTest, StatCache) {
   disk_.AllowStatCache(true);
@@ -83,6 +95,7 @@
   ASSERT_TRUE(Touch("file1"));
   ASSERT_TRUE(Touch("fiLE2"));
   ASSERT_TRUE(disk_.MakeDir("subdir"));
+  ASSERT_TRUE(disk_.MakeDir("subdir/subsubdir"));
   ASSERT_TRUE(Touch("subdir\\subfile1"));
   ASSERT_TRUE(Touch("subdir\\SUBFILE2"));
   ASSERT_TRUE(Touch("subdir\\SUBFILE3"));
@@ -93,6 +106,14 @@
   EXPECT_GT(disk_.Stat("subdir/subfile2"), 1);
   EXPECT_GT(disk_.Stat("sUbdir\\suBFile1"), 1);
 
+  EXPECT_GT(disk_.Stat("."), 1);
+  EXPECT_GT(disk_.Stat("subdir"), 1);
+  EXPECT_GT(disk_.Stat("subdir/subsubdir"), 1);
+
+  EXPECT_EQ(disk_.Stat("subdir"), disk_.Stat("subdir/."));
+  EXPECT_EQ(disk_.Stat("subdir"), disk_.Stat("subdir/subsubdir/.."));
+  EXPECT_EQ(disk_.Stat("subdir/subsubdir"), disk_.Stat("subdir/subsubdir/."));
+
   // Test error cases.
   disk_.quiet_ = true;
   string bad_path("cc:\\foo");
diff --git a/src/version.cc b/src/version.cc
index 6d2d37c..3fb729f 100644
--- a/src/version.cc
+++ b/src/version.cc
@@ -18,7 +18,7 @@
 
 #include "util.h"
 
-const char* kNinjaVersion = "1.5.0";
+const char* kNinjaVersion = "1.5.1";
 
 void ParseVersion(const string& version, int* major, int* minor) {
   size_t end = version.find('.');
