diff --git a/bundles/org.eclipse.rap.rwt.supplemental.fileupload/src/org/eclipse/rap/rwt/supplemental/fileupload/DiskFileUploadReceiver.java b/bundles/org.eclipse.rap.rwt.supplemental.fileupload/src/org/eclipse/rap/rwt/supplemental/fileupload/DiskFileUploadReceiver.java
index e34feee..424073c 100644
--- a/bundles/org.eclipse.rap.rwt.supplemental.fileupload/src/org/eclipse/rap/rwt/supplemental/fileupload/DiskFileUploadReceiver.java
+++ b/bundles/org.eclipse.rap.rwt.supplemental.fileupload/src/org/eclipse/rap/rwt/supplemental/fileupload/DiskFileUploadReceiver.java
@@ -21,8 +21,9 @@
  * A file upload receiver that stores received files on disk.
  */
 public class DiskFileUploadReceiver extends FileUploadReceiver {
-  
+
   private static final String DEFAULT_TARGET_FILE_NAME = "upload.tmp";
+  private static final String TEMP_DIRECTORY_PREFIX = "fileupload_";
 
   private File targetFile;
 
@@ -57,17 +58,20 @@
     if( details != null && details.getFileName() != null ) {
       fileName = details.getFileName();
     }
-    return File.createTempFile( createPrefix( fileName ), createSuffix( fileName ) );
+    File result = new File( createTempDirectory(), fileName );
+    result.createNewFile();
+    return result;
   }
 
-  private String createPrefix( String fileName ) {
-    int dotIndex = fileName.lastIndexOf( '.' );
-    return dotIndex == -1 ? fileName : fileName.substring( 0, dotIndex + 1 );
-  }
-
-  private String createSuffix( String fileName ) {
-    int dotIndex = fileName.lastIndexOf( '.' );
-    return dotIndex == -1 ? null : fileName.substring( dotIndex );
+  private static File createTempDirectory() throws IOException {
+    File result = File.createTempFile( TEMP_DIRECTORY_PREFIX, "" );
+    result.delete();
+    if( result.mkdir() ) {
+      result.deleteOnExit();
+    } else {
+      throw new IOException( "Unable to create temp directory: " + result.getAbsolutePath() );
+    }
+    return result;
   }
 
   private static void copy( InputStream inputStream, OutputStream outputStream )
diff --git a/tests/org.eclipse.rap.rwt.supplemental.fileupload.test/src/org/eclipse/rap/rwt/supplemental/fileupload/DiskFileUploadReceiver_Test.java b/tests/org.eclipse.rap.rwt.supplemental.fileupload.test/src/org/eclipse/rap/rwt/supplemental/fileupload/DiskFileUploadReceiver_Test.java
index 8054ab7..666df5e 100644
--- a/tests/org.eclipse.rap.rwt.supplemental.fileupload.test/src/org/eclipse/rap/rwt/supplemental/fileupload/DiskFileUploadReceiver_Test.java
+++ b/tests/org.eclipse.rap.rwt.supplemental.fileupload.test/src/org/eclipse/rap/rwt/supplemental/fileupload/DiskFileUploadReceiver_Test.java
@@ -43,8 +43,7 @@
     createdFile = receiver.createTargetFile( details );
 
     assertTrue( createdFile.exists() );
-    assertTrue( createdFile.getName().startsWith( "foo." ) );
-    assertTrue( createdFile.getName().endsWith( ".bar" ) );
+    assertEquals( "foo.bar", createdFile.getName() );
   }
 
   public void testCreatedTargetFilesDiffer() throws IOException {
@@ -80,8 +79,7 @@
 
     assertNotNull( createdFile );
     assertTrue( createdFile.exists() );
-    assertTrue( createdFile.getName().startsWith( "upload." ) );
-    assertTrue( createdFile.getName().endsWith( ".tmp" ) );
+    assertEquals( "upload.tmp", createdFile.getName() );
     assertEquals( content, FileUploadTestUtil.getFileContents( createdFile ) );
   }
 }
