diff --git a/include/core/SkMMapStream.h b/include/core/SkMMapStream.h
index be063bd..151ad87 100644
--- a/include/core/SkMMapStream.h
+++ b/include/core/SkMMapStream.h
@@ -26,7 +26,6 @@
 
     virtual void setMemory(const void* data, size_t length, bool);
 private:
-    int     fFildes;
     void*   fAddr;
     size_t  fSize;
     
diff --git a/src/core/SkMMapStream.cpp b/src/core/SkMMapStream.cpp
index 78cb3f3..18d4760 100644
--- a/src/core/SkMMapStream.cpp
+++ b/src/core/SkMMapStream.cpp
@@ -7,7 +7,7 @@
 
 SkMMAPStream::SkMMAPStream(const char filename[])
 {
-    fFildes = -1;   // initialize to failure case
+    fAddr = NULL;   // initialize to failure case
 
     int fildes = open(filename, O_RDONLY);
     if (fildes < 0)
@@ -29,16 +29,21 @@
     size_t size = static_cast<size_t>(offset);
 
     void* addr = mmap(NULL, size, PROT_READ, MAP_SHARED, fildes, 0);
+
+    // According to the POSIX documentation of mmap it adds an extra reference
+    // to the file associated with the fildes which is not removed by a
+    // subsequent close() on that fildes. This reference is removed when there
+    // are no more mappings to the file.
+    close(fildes);
+
     if (MAP_FAILED == addr)
     {
         SkDEBUGF(("---- failed to mmap(%s) for mmap stream error=%d\n", filename, errno));
-        close(fildes);
         return;
     }
 
     this->INHERITED::setMemory(addr, size);
 
-    fFildes = fildes;
     fAddr = addr;
     fSize = size;
 }
@@ -56,11 +61,10 @@
 
 void SkMMAPStream::closeMMap()
 {
-    if (fFildes >= 0)
+    if (fAddr)
     {
         munmap(fAddr, fSize);
-        close(fFildes);
-        fFildes = -1;
+        fAddr = NULL;
     }
 }
 
