diff --git a/swiftonfile/swift/obj/diskfile.py b/swiftonfile/swift/obj/diskfile.py
index a549327..9f57d3f 100644
--- a/swiftonfile/swift/obj/diskfile.py
+++ b/swiftonfile/swift/obj/diskfile.py
@@ -166,7 +166,12 @@ def make_directory(full_path, uid, gid, metadata=None):
 
         # We created it, so we are reponsible for always setting the proper
         # ownership.
-        do_chown(full_path, uid, gid)
+        if not ((uid == DEFAULT_UID) and (gid == DEFAULT_GID)):
+            # If both UID and GID is -1 (default values), it has no effect.
+            # So don't do a chown.
+            # Further, at the time of this writing, UID and GID information
+            # is not passed to DiskFile.
+            do_chown(full_path, uid, gid)
         return True, metadata
 
 
@@ -1019,7 +1024,12 @@ class DiskFile(object):
                         raise DiskFileNoSpace()
                     raise
             # Ensure it is properly owned before we make it available.
-            do_fchown(fd, self._uid, self._gid)
+            if not ((self._uid == DEFAULT_UID) and (self._gid == DEFAULT_GID)):
+                # If both UID and GID is -1 (default values), it has no effect.
+                # So don't do a fchown.
+                # Further, at the time of this writing, UID and GID information
+                # is not passed to DiskFile.
+                do_fchown(fd, self._uid, self._gid)
             dw = DiskFileWriter(fd, tmppath, self)
             # It's now the responsibility of DiskFileWriter to close this fd.
             fd = None
diff --git a/test/unit/obj/test_diskfile.py b/test/unit/obj/test_diskfile.py
index bb37cd8..a01aa0b 100644
--- a/test/unit/obj/test_diskfile.py
+++ b/test/unit/obj/test_diskfile.py
@@ -1104,3 +1104,49 @@ class TestDiskFile(unittest.TestCase):
             self.assertFalse(gdf._fd)
             # Close the actual fd, as we had mocked do_close
             os.close(_m_do_close.call_args[0][0])
+
+    def make_directory_chown_call(self):
+        path = os.path.join(self.td, "a/b/c")
+        _m_do_chown = Mock()
+        with patch("swiftonfile.swift.obj.diskfile.do_chown", _m_do_chown):
+            diskfile.make_directory(path, -1, -1)
+        self.assertFalse(_m_do_chown.called)
+        self.assertTrue(os.path.isdir(path))
+
+        path = os.path.join(self.td, "d/e/f")
+        _m_do_chown.reset_mock()
+        with patch("swiftonfile.swift.obj.diskfile.do_chown", _m_do_chown):
+            diskfile.make_directory(path, -1, 99)
+        self.assertEqual(_m_do_chown.call_count, 3)
+        self.assertTrue(os.path.isdir(path))
+
+        path = os.path.join(self.td, "g/h/i")
+        _m_do_chown.reset_mock()
+        with patch("swiftonfile.swift.obj.diskfile.do_chown", _m_do_chown):
+            diskfile.make_directory(path, 99, -1)
+        self.assertEqual(_m_do_chown.call_count, 3)
+        self.assertTrue(os.path.isdir(path))
+
+    def test_fchown_not_called_on_default_uid_gid_values(self):
+        the_cont = os.path.join(self.td, "vol0", "ufo47", "bar")
+        os.makedirs(the_cont)
+        body = '1234'
+        metadata = {
+            'X-Timestamp': '1234',
+            'Content-Type': 'file',
+            'ETag': md5(body).hexdigest(),
+            'Content-Length': len(body),
+        }
+
+        _m_do_fchown = Mock()
+        gdf = self._get_diskfile("vol0", "p57", "ufo47", "bar", "z")
+        with gdf.create() as dw:
+            assert dw._tmppath is not None
+            tmppath = dw._tmppath
+            dw.write(body)
+            with patch("swiftonfile.swift.obj.diskfile.do_fchown",
+                       _m_do_fchown):
+                dw.put(metadata)
+        self.assertFalse(_m_do_fchown.called)
+        assert os.path.exists(gdf._data_file)
+        assert not os.path.exists(tmppath)