Index: core/files/move.py
===================================================================
--- core/files/move.py	(revision 8295)
+++ core/files/move.py	(working copy)
@@ -1,12 +1,13 @@
 """
 Move a file in the safest way possible::
 
-    >>> from django.core.files.move import file_move_save
-    >>> file_move_save("/tmp/old_file", "/tmp/new_file")
+    >>> from django.core.files.move import file_move_safe
+    >>> file_move_safe("/tmp/old_file", "/tmp/new_file")
 """
 
 import os
 from django.core.files import locks
+from django.core.files.locks import system_type
 
 __all__ = ['file_move_safe']
 
@@ -16,6 +17,16 @@
 except ImportError:
     file_move = os.rename
 
+if system_type == 'nt' :
+    def _remove( file_name ) :
+        from exceptions import WindowsError
+        try:
+            return os.remove(file_name)
+        except:
+            pass    # Since file_name is the name of a NamedTemporaryFile which is still open
+else :
+    _remove = os.remove
+
 def file_move_safe(old_file_name, new_file_name, chunk_size = 1024*64, allow_overwrite=False):
     """
     Moves a file from one location to another in the safest way possible.
@@ -53,7 +64,8 @@
         current_chunk = old_file.read(chunk_size)
         new_file.write(current_chunk)
 
+    locks.unlock(new_file)
     new_file.close()
     old_file.close()
-
-    os.remove(old_file_name)
+    
+    _remove( old_file_name )
