Index: image-edit.php
===================================================================
--- image-edit.php	(revision 33618)
+++ image-edit.php	(working copy)
@@ -738,6 +738,10 @@
 	$filename = $path_parts['filename'];
 	$suffix = time() . rand(100, 999);
 
+	// Before using random suffix try to use sizes
+	$suffix_sizes = $img->get_size();
+	$suffix_sizes = "-".$suffix_sizes["width"]."x".$suffix_sizes["height"];
+
 	if ( defined('IMAGE_EDIT_OVERWRITE') && IMAGE_EDIT_OVERWRITE &&
 		isset($backup_sizes['full-orig']) && $backup_sizes['full-orig']['file'] != $path_parts['basename'] ) {
 
@@ -746,15 +750,22 @@
 		else
 			$new_path = $path;
 	} else {
-		while( true ) {
-			$filename = preg_replace( '/-e([0-9]+)$/', '', $filename );
-			$filename .= "-e{$suffix}";
-			$new_filename = "{$filename}.{$path_parts['extension']}";
-			$new_path = "{$path_parts['dirname']}/$new_filename";
-			if ( file_exists($new_path) )
-				$suffix++;
-			else
-				break;
+		$filename = preg_replace( "/-e([0-9]+)$/", "", $filename );
+		$filename = preg_replace( "/-([0-9]{1,5})x([0-9]{1,5})$/", "", $filename );
+		$filename .= $suffix_sizes;
+		$new_filename = $filename.".".$path_parts["extension"];
+		$new_path = $path_parts["dirname"]."/".$new_filename;
+		if ( file_exists($new_path) ){
+			while( true ) {
+				$filename = preg_replace( '/-e([0-9]+)$/', '', $filename );
+				$filename .= "-e{$suffix}";
+				$new_filename = "{$filename}.{$path_parts['extension']}";
+				$new_path = "{$path_parts['dirname']}/$new_filename";
+				if ( file_exists($new_path) )
+					$suffix++;
+				else
+					break;
+			}
 		}
 	}
 
