Index: django/db/models/base.py
===================================================================
--- django/db/models/base.py	(revision 7028)
+++ django/db/models/base.py	(working copy)
@@ -382,11 +382,12 @@
         return os.path.getsize(self._get_FIELD_filename(field))
 
     def _save_FIELD_file(self, field, filename, raw_contents, save=True):
-        directory = field.get_directory_name()
-        try: # Create the date-based directory if it doesn't exist.
-            os.makedirs(os.path.join(settings.MEDIA_ROOT, directory))
-        except OSError: # Directory probably already exists.
-            pass
+        directory = os.path.join(settings.MEDIA_ROOT,
+                field.get_directory_name())
+        if not os.path.exists(directory):
+            os.makedirs(directory)
+        elif not os.path.isdir(directory):
+            raise IOError('%s exists and is not a directory' % directory)
         filename = field.get_filename(filename)
 
         # If the filename already exists, keep adding an underscore to the name of
