Index: doc/source/en/TortoiseSVN/tsvn_app_automation.xml
===================================================================
--- doc/source/en/TortoiseSVN/tsvn_app_automation.xml	(revision 9012)
+++ doc/source/en/TortoiseSVN/tsvn_app_automation.xml	(working copy)
@@ -43,11 +43,10 @@
 			several paths, separated by a <literal>*</literal> character.
 		</para>
 		<para>
-			Since TortoiseSVN uses temporary files to pass multiple arguments between
-			the shell extension and the main program, you <emphasis>must</emphasis>
-			add the <option>/notempfile</option> parameter! If you don't, the command
-			won't work and the file you pass with the <option>/path</option> parameter
-			will be deleted!
+			TortoiseSVN uses temporary files to pass multiple arguments between
+			the shell extension and the main program. Since TortoiseSVN 1.5.0 the
+			<option>/notempfile</option> parameter is obsolete and there is no need
+			to add it anymore.
 		</para>
 		<para>
 			The progress dialog which is used for commits, updates and many more commands
@@ -410,12 +409,12 @@
 			Examples (which should be entered on one line):
 <screen>
 TortoiseProc.exe /command:commit /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
-                 /logmsg:"test log message" /notempfile /closeonend
+                 /logmsg:"test log message" /closeonend
 
-TortoiseProc.exe /command:update /path:"c:\svn_wc\" /notempfile /closeonend
+TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend
 
 TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
-                 /revstart:50 /revend:60 /notempfile /closeonend
+                 /revstart:50 /revend:60 /closeonend
 </screen>
 		</para>
 	</sect1>
Index: src/Changelog.txt
===================================================================
--- src/Changelog.txt	(revision 9013)
+++ src/Changelog.txt	(working copy)
@@ -168,6 +168,8 @@
 - CHG: When creating a repository, always use the FSFS type. While it's no
        longer possible to create BDB repositories, it's still possible to
        access them via file:///. (Stefan)
+- CHG: The TortoiseSVN automation interface does not need the parameter
+       /notempfile anymore. See issue #298 for details. (Tobias Schäfer)
 - BUG: TortoiseMerge didn't always ask to save the modifications first before
        the user did something which would lose those modifications
        (e.g. open new files). (Stefan)
Index: src/Resources/TortoiseProcENG.rc
===================================================================
--- src/Resources/TortoiseProcENG.rc	(revision 9012)
+++ src/Resources/TortoiseProcENG.rc	(working copy)
@@ -1947,6 +1947,7 @@
     IDS_ERR_DIFFVIEWSTART   "Could not start diff viewer!\n<hr=100%%>\n%s"
     IDS_ERR_SSL_VALIDATE    "Error validating server certificate for %s:"
     IDS_ERR_SSL_UNKNOWNCA   "Unknown certificate issuer.\n  Fingerprint: %s\n  Distinguished name: %s"
+	IDS_ERR_INVALIDPATH     "The parameters /path and /pathfile are mutally exclusive."
 END
 
 STRINGTABLE 
Index: src/SVN/SVNStatusListCtrl.cpp
===================================================================
--- src/SVN/SVNStatusListCtrl.cpp	(revision 9012)
+++ src/SVN/SVNStatusListCtrl.cpp	(working copy)
@@ -2417,9 +2417,10 @@
 						CTSVNPath tempFile = CTempFiles::Instance().GetTempFilePath(false);
 						VERIFY(targetList.WriteToTemporaryFile(tempFile.GetWinPathString()));
 						CString commandline = CPathUtils::GetAppDirectory();
-						commandline += _T("TortoiseProc.exe /command:commit /path:\"");
+						commandline += _T("TortoiseProc.exe /command:commit /pathfile:\"");
 						commandline += tempFile.GetWinPathString();
 						commandline += _T("\"");
+						commandline += _T(" /deletepathfile");
 						CAppUtils::LaunchApplication(commandline, NULL, false);
 					}
 					break;
Index: src/SVN/TSVNPath.h
===================================================================
--- src/SVN/TSVNPath.h	(revision 9012)
+++ src/SVN/TSVNPath.h	(working copy)
@@ -299,7 +299,7 @@
 	bool WriteToTemporaryFile(const CString& sFilename, bool bANSI = false) const;
 
 	/**
-	 * Load from the path argument string, when the 'notempfile' flag is used
+	 * Load from the path argument string, when the 'path' parameter is used
 	 * This is a list of paths, with '*' between them
 	 */
 	void LoadFromAsteriskSeparatedString(const CString& sPathString);
Index: src/TortoiseMerge/MainFrm.cpp
===================================================================
--- src/TortoiseMerge/MainFrm.cpp	(revision 9012)
+++ src/TortoiseMerge/MainFrm.cpp	(working copy)
@@ -1517,7 +1517,7 @@
 		(*end) = 0;
 		_tcscat_s(buf, MAX_PATH*3, _T("TortoiseProc.exe /command:resolve /path:\""));
 		_tcscat_s(buf, MAX_PATH*3, this->m_Data.m_mergedFile.GetFilename());
-		_tcscat_s(buf, MAX_PATH*3, _T("\" /closeonend:1 /noquestion /skipcheck /notempfile"));
+		_tcscat_s(buf, MAX_PATH*3, _T("\" /closeonend:1 /noquestion /skipcheck"));
 		STARTUPINFO startup;
 		PROCESS_INFORMATION process;
 		memset(&startup, 0, sizeof(startup));
Index: src/TortoiseProc/LogDlg.cpp
===================================================================
--- src/TortoiseProc/LogDlg.cpp	(revision 9012)
+++ src/TortoiseProc/LogDlg.cpp	(working copy)
@@ -3322,7 +3322,7 @@
 		case ID_REPOBROWSE:
 			{
 				CString sCmd;
-				sCmd.Format(_T("%s /command:repobrowser /path:\"%s\" /rev:%ld /notempfile"),
+				sCmd.Format(_T("%s /command:repobrowser /path:\"%s\" /rev:%ld"),
 					CPathUtils::GetAppDirectory()+_T("TortoiseProc.exe"),
 					pathURL, revSelected);
 
@@ -3348,7 +3348,7 @@
 			{
 				CString sCmd;
 				CString url = _T("tsvn:")+pathURL;
-				sCmd.Format(_T("%s /command:export /url:\"%s\" /revision:%ld /notempfile"),
+				sCmd.Format(_T("%s /command:export /url:\"%s\" /revision:%ld"),
 					CPathUtils::GetAppDirectory()+_T("TortoiseProc.exe"),
 					url, revSelected);
 				CAppUtils::LaunchApplication(sCmd, NULL, false);
@@ -3358,7 +3358,7 @@
 			{
 				CString sCmd;
 				CString url = _T("tsvn:")+pathURL;
-				sCmd.Format(_T("%s /command:checkout /url:\"%s\" /revision:%ld /notempfile"),
+				sCmd.Format(_T("%s /command:checkout /url:\"%s\" /revision:%ld"),
 					CPathUtils::GetAppDirectory()+_T("TortoiseProc.exe"),
 					url, revSelected);
 				CAppUtils::LaunchApplication(sCmd, NULL, false);
Index: src/TortoiseProc/resource.h
===================================================================
--- src/TortoiseProc/resource.h	(revision 9012)
+++ src/TortoiseProc/resource.h	(working copy)
@@ -334,6 +334,7 @@
 #define IDS_LOG_SIZE                    1182
 #define IDC_COPYHEAD                    1182
 #define IDC_COPYWC                      1183
+#define IDS_ERR_INVALIDPATH             1183
 #define IDC_AUTOCOMPLETION              1184
 #define IDC_COPYREV                     1185
 #define IDC_COPYREVTEXT                 1186
Index: src/TortoiseProc/TortoiseProc.cpp
===================================================================
--- src/TortoiseProc/TortoiseProc.cpp	(revision 9012)
+++ src/TortoiseProc/TortoiseProc.cpp	(working copy)
@@ -151,54 +151,52 @@
 {
 	TSVNCommand command;
 	LPCTSTR pCommandName;
-	bool bPathIsTempFileByDefault;
 } commandInfo[] = 
 {
-	//                                          PathIsTempFile?
-	{	cmdTest,			_T("test"),				false	},
-	{	cmdCrash,			_T("crash"),			false	},
-	{	cmdAbout,			_T("about"),			false	},
-	{	cmdRTFM,			_T("rtfm"),				false	},
-	{	cmdLog,				_T("log"),				false	},
-	{	cmdCheckout,		_T("checkout"),			false	},
-	{	cmdImport,			_T("import"),			false	},
-	{	cmdUpdate,			_T("update"),			true	},
-	{	cmdCommit,			_T("commit"),			true	},
-	{	cmdAdd,				_T("add"),				true	},
-	{	cmdRevert,			_T("revert"),			true	},
-	{	cmdCleanup,			_T("cleanup"),			true	},
-	{	cmdResolve,			_T("resolve"),			true	},
-	{	cmdRepoCreate,		_T("repocreate"),		false	},
-	{	cmdSwitch,			_T("switch"),			false	},
-	{	cmdExport,			_T("export"),			false	},
-	{	cmdMerge,			_T("merge"),			false	},
-	{	cmdCopy,			_T("copy"),				false	},
-	{	cmdSettings,		_T("settings"),			false	},
-	{	cmdRemove,			_T("remove"),			true	},
-	{	cmdRename,			_T("rename"),			false	},
-	{	cmdDiff,			_T("diff"),				false	},
-	{	cmdUrlDiff,			_T("urldiff"),			false	},
-	{	cmdDropCopyAdd,		_T("dropcopyadd"),		true	},
-	{	cmdDropMove,		_T("dropmove"),			true	},
-	{	cmdDropExport,		_T("dropexport"),		true	},
-	{	cmdDropCopy,		_T("dropcopy"),			true	},
-	{	cmdConflictEditor,	_T("conflicteditor"),	false	},
-	{	cmdRelocate,		_T("relocate"),			false	},
-	{	cmdHelp,			_T("help"),				false	},
-	{	cmdRepoStatus,		_T("repostatus"),		false	},
-	{	cmdRepoBrowser,		_T("repobrowser"),		false	},
-	{	cmdIgnore,			_T("ignore"),			true	},
-	{	cmdUnIgnore,		_T("unignore"),			true	},
-	{	cmdBlame,			_T("blame"),			false	},
-	{	cmdCat,				_T("cat"),				false	},
-	{	cmdCreatePatch,		_T("createpatch"),		true	},
-	{	cmdUpdateCheck,		_T("updatecheck"),		false	},
-	{	cmdRevisionGraph,	_T("revisiongraph"),	false	},
-	{	cmdLock,			_T("lock"),				true	},
-	{	cmdUnlock,			_T("unlock"),			true	},
-	{	cmdRebuildIconCache,_T("rebuildiconcache"),	false	},
-	{	cmdProperties,		_T("properties"),		true	},
-	{	cmdDelUnversioned,	_T("delunversioned"),	false	},
+	{	cmdTest,			_T("test")				},
+	{	cmdCrash,			_T("crash")				},
+	{	cmdAbout,			_T("about")				},
+	{	cmdRTFM,			_T("rtfm")				},
+	{	cmdLog,				_T("log")				},
+	{	cmdCheckout,		_T("checkout")			},
+	{	cmdImport,			_T("import")			},
+	{	cmdUpdate,			_T("update")			},
+	{	cmdCommit,			_T("commit")			},
+	{	cmdAdd,				_T("add")				},
+	{	cmdRevert,			_T("revert")			},
+	{	cmdCleanup,			_T("cleanup")			},
+	{	cmdResolve,			_T("resolve")			},
+	{	cmdRepoCreate,		_T("repocreate")		},
+	{	cmdSwitch,			_T("switch")			},
+	{	cmdExport,			_T("export")			},
+	{	cmdMerge,			_T("merge")				},
+	{	cmdCopy,			_T("copy")				},
+	{	cmdSettings,		_T("settings")			},
+	{	cmdRemove,			_T("remove")			},
+	{	cmdRename,			_T("rename")			},
+	{	cmdDiff,			_T("diff")				},
+	{	cmdUrlDiff,			_T("urldiff")			},
+	{	cmdDropCopyAdd,		_T("dropcopyadd")		},
+	{	cmdDropMove,		_T("dropmove")			},
+	{	cmdDropExport,		_T("dropexport")		},
+	{	cmdDropCopy,		_T("dropcopy")			},
+	{	cmdConflictEditor,	_T("conflicteditor")	},
+	{	cmdRelocate,		_T("relocate")			},
+	{	cmdHelp,			_T("help")				},
+	{	cmdRepoStatus,		_T("repostatus")		},
+	{	cmdRepoBrowser,		_T("repobrowser")		},
+	{	cmdIgnore,			_T("ignore")			},
+	{	cmdUnIgnore,		_T("unignore")			},
+	{	cmdBlame,			_T("blame")				},
+	{	cmdCat,				_T("cat")				},
+	{	cmdCreatePatch,		_T("createpatch")		},
+	{	cmdUpdateCheck,		_T("updatecheck")		},
+	{	cmdRevisionGraph,	_T("revisiongraph")		},
+	{	cmdLock,			_T("lock")				},
+	{	cmdUnlock,			_T("unlock")			},
+	{	cmdRebuildIconCache,_T("rebuildiconcache")	},
+	{	cmdProperties,		_T("properties")		},
+	{	cmdDelUnversioned,	_T("delunversioned")	},
 };
 
 //////////////////////////////////////////////////////////////////////////
@@ -390,23 +388,21 @@
 			}
 		}
 
-		bool bPathIsTempfile = false;
-		if(commandInfo[command].bPathIsTempFileByDefault)
+		if ( parser.HasKey(_T("path")) && parser.HasKey(_T("pathfile")))
 		{
-			// The path argument is probably a temporary file containing path names, unless
-			// the notempfile argument is present
-			bPathIsTempfile = !parser.HasKey(_T("notempfile"));
+			CMessageBox::Show(NULL, IDS_ERR_INVALIDPATH, IDS_APPNAME, MB_ICONERROR);
+			return FALSE;
 		}
 
-		CString sPathArgument = CPathUtils::GetLongPathname(parser.GetVal(_T("path")));
-		CTSVNPath cmdLinePath(sPathArgument);
-
+		CTSVNPath cmdLinePath;
 		CTSVNPathList pathList;
-		if(bPathIsTempfile)
+		if ( parser.HasKey(_T("pathfile")) )
 		{
+			CString sPathfileArgument = CPathUtils::GetLongPathname(parser.GetVal(_T("pathfile")));
+			cmdLinePath.SetFromUnknown(sPathfileArgument);
 			if (pathList.LoadFromTemporaryFile(cmdLinePath)==false)
 				return FALSE;		// no path specified!
-			if(cmdLinePath.GetFileExtension().CompareNoCase(_T(".tmp")) == 0)
+			if ( parser.HasKey(_T("deletepathfile")) )
 			{
 				// We can delete the temporary path file, now that we've loaded it
 				::DeleteFile(cmdLinePath.GetWinPath());
@@ -417,6 +413,8 @@
 		}
 		else
 		{
+			CString sPathArgument = CPathUtils::GetLongPathname(parser.GetVal(_T("path")));
+			cmdLinePath.SetFromUnknown(sPathArgument);
 			pathList.LoadFromAsteriskSeparatedString(sPathArgument);
 		}
 		
Index: src/TortoiseShell/ContextMenu.cpp
===================================================================
--- src/TortoiseShell/ContextMenu.cpp	(revision 9012)
+++ src/TortoiseShell/ContextMenu.cpp	(working copy)
@@ -1134,9 +1134,12 @@
 			CRegStdString tortoiseMergePath(_T("Software\\TortoiseSVN\\TMergePath"), _T("TortoiseMerge.exe"), false, HKEY_LOCAL_MACHINE);
 
 			//TortoiseProc expects a command line of the form:
+			//"/command:<commandname> /pathfile:<path> /revstart:<revisionstart> /revend:<revisionend> /deletefile
+			// or
 			//"/command:<commandname> /path:<path> /revstart:<revisionstart> /revend:<revisionend>
-			//path is either a path to a single file/directory for commands which only act on single files (log, checkout, ...)
-			//or a path to a temporary file which contains a list of filepaths
+			//
+			//* path is a path to a single file/directory for commands which only act on single files (log, checkout, ...)
+			//* pathfile is a path to a temporary file which contains a list of filepaths
 			stdstring svnCmd = _T(" /command:");
 			stdstring tempfile;
 			switch (id_it->second)
@@ -1149,60 +1152,70 @@
 				break;
 			case ShellMenuUpdate:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("update /path:\"");
+				svnCmd += _T("update /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuUpdateExt:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("update /path:\"");
+				svnCmd += _T("update /pathfile:\"");
 				svnCmd += tempfile;
-				svnCmd += _T("\" /rev");
+				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
+				svnCmd += _T(" /rev");
 				break;
 			case ShellMenuCommit:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("commit /path:\"");
+				svnCmd += _T("commit /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuAdd:
 			case ShellMenuAddAsReplacement:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("add /path:\"");
+				svnCmd += _T("add /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuIgnore:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("ignore /path:\"");
+				svnCmd += _T("ignore /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuIgnoreCaseSensitive:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("ignore /path:\"");
+				svnCmd += _T("ignore /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /onlymask");
 				break;
 			case ShellMenuUnIgnore:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("unignore /path:\"");
+				svnCmd += _T("unignore /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuUnIgnoreCaseSensitive:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("unignore /path:\"");
+				svnCmd += _T("unignore /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /onlymask");
 				break;
 			case ShellMenuRevert:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("revert /path:\"");
+				svnCmd += _T("revert /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuDelUnversioned:
 				svnCmd += _T("delunversioned /path:\"");
@@ -1211,15 +1224,17 @@
 				break;
 			case ShellMenuCleanup:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("cleanup /path:\"");
+				svnCmd += _T("cleanup /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuResolve:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("resolve /path:\"");
+				svnCmd += _T("resolve /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuSwitch:
 				svnCmd += _T("switch /path:\"");
@@ -1279,15 +1294,17 @@
 				break;
 			case ShellMenuRemove:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("remove /path:\"");
+				svnCmd += _T("remove /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuRemoveKeep:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("remove /path:\"");
+				svnCmd += _T("remove /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /keep");
 				break;
 			case ShellMenuDiff:
@@ -1316,63 +1333,70 @@
 				break;
 			case ShellMenuDropCopyAdd:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("dropcopyadd /path:\"");
+				svnCmd += _T("dropcopyadd /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /droptarget:\"");
 				svnCmd += folder_;
 				svnCmd += _T("\"";)
 					break;
 			case ShellMenuDropCopy:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("dropcopy /path:\"");
+				svnCmd += _T("dropcopy /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /droptarget:\"");
 				svnCmd += folder_;
 				svnCmd += _T("\"";)
 					break;
 			case ShellMenuDropCopyRename:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("dropcopy /path:\"");
+				svnCmd += _T("dropcopy /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /droptarget:\"");
 				svnCmd += folder_;
 				svnCmd += _T("\" /rename";)
 					break;
 			case ShellMenuDropMove:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("dropmove /path:\"");
+				svnCmd += _T("dropmove /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /droptarget:\"");
 				svnCmd += folder_;
 				svnCmd += _T("\"");
 				break;
 			case ShellMenuDropMoveRename:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("dropmove /path:\"");
+				svnCmd += _T("dropmove /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /droptarget:\"");
 				svnCmd += folder_;
 				svnCmd += _T("\" /rename";)
 				break;
 			case ShellMenuDropExport:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("dropexport /path:\"");
+				svnCmd += _T("dropexport /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /droptarget:\"");
 				svnCmd += folder_;
 				svnCmd += _T("\"");
 				break;
 			case ShellMenuDropExportExtended:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("dropexport /path:\"");
+				svnCmd += _T("dropexport /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				svnCmd += _T(" /droptarget:\"");
 				svnCmd += folder_;
 				svnCmd += _T("\"");
@@ -1428,9 +1452,10 @@
 				break;
 			case ShellMenuCreatePatch:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("createpatch /path:\"");
+				svnCmd += _T("createpatch /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuApplyPatch:
 				if ((isPatchFileInClipboard)&&(isExtended)&&(!isPatchFile))
@@ -1531,27 +1556,32 @@
 				break;
 			case ShellMenuLock:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("lock /path:\"");
+				svnCmd += _T("lock /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuUnlock:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("unlock /path:\"");
+				svnCmd += _T("unlock /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			case ShellMenuUnlockForce:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("unlock /path:\"");
+				svnCmd += _T("unlock /pathfile:\"");
 				svnCmd += tempfile;
-				svnCmd += _T("\" /force");
+				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
+				svnCmd += _T(" /force");
 				break;
 			case ShellMenuProperties:
 				tempfile = WriteFileListToTempFile();
-				svnCmd += _T("properties /path:\"");
+				svnCmd += _T("properties /pathfile:\"");
 				svnCmd += tempfile;
 				svnCmd += _T("\"");
+				svnCmd += _T(" /deletepathfile");
 				break;
 			default:
 				break;
Index: src/TortoiseShell/SVNPropertyPage.cpp
===================================================================
--- src/TortoiseShell/SVNPropertyPage.cpp	(revision 9012)
+++ src/TortoiseShell/SVNPropertyPage.cpp	(working copy)
@@ -222,9 +222,10 @@
 							memset(&process, 0, sizeof(process));
 							CRegStdString tortoiseProcPath(_T("Software\\TortoiseSVN\\ProcPath"), _T("TortoiseProc.exe"), false, HKEY_LOCAL_MACHINE);
 							stdstring svnCmd = _T(" /command:");
-							svnCmd += _T("properties /path:\"");
+							svnCmd += _T("properties /pathfile:\"");
 							svnCmd += retFilePath.c_str();
 							svnCmd += _T("\"");
+							svnCmd += _T(" /deletepathfile");
 							if (CreateProcess(tortoiseProcPath, const_cast<TCHAR*>(svnCmd.c_str()), NULL, NULL, FALSE, 0, 0, 0, &startup, &process))
 							{
 								CloseHandle(process.hThread);


