diff --git a/src/python/dm/common/processing/plugins/fileTransferPlugin.py b/src/python/dm/common/processing/plugins/fileTransferPlugin.py
index 1cae8d3544d1a168158994276851e7d76fed4d12..e1f20e5a968a3f74ee6eb0950bda4398fad426f6 100755
--- a/src/python/dm/common/processing/plugins/fileTransferPlugin.py
+++ b/src/python/dm/common/processing/plugins/fileTransferPlugin.py
@@ -3,6 +3,7 @@
 import os
 from dm.common.utility.loggingManager import LoggingManager
 from dm.common.utility.dmSubprocess import DmSubprocess
+from dm.common.utility.osUtility import OsUtility
 from dm.common.exceptions.invalidArgument import InvalidArgument
 from dm.common.exceptions.invalidRequest import InvalidRequest
 from fileProcessor import FileProcessor
@@ -39,7 +40,10 @@ class FileTransferPlugin(FileProcessor):
         return srcUrl
     
     def getDestUrl(self, filePath, dataDirectory, storageHost, storageDirectory):
-        destUrl = '%s:%s' % (storageHost, storageDirectory)
+        if self.dest:
+            destUrl = '%s' % (self.dest)
+        else:
+            destUrl = '%s:%s' % (storageHost, storageDirectory)
         return destUrl
     
     def getFullCommand(self, src, dest):
@@ -60,6 +64,14 @@ class FileTransferPlugin(FileProcessor):
         if dest is None:
             fileDest = self.dest
 
+        # If destination is local, attempt to create it
+        if self.dest is not None and self.dest.find(':') < 0:
+            destDir = self.replaceTemplates(self.dest, fileInfo)
+            try:
+                OsUtility.createDir(destDir)
+            except Exception, ex:
+                self.logger.warn('Transfer may fail due to failure to create destination directory %s: %s' % (destDir, str(ex))) 
+
         fileSrc = self.replaceTemplates(fileSrc, fileInfo)
         fileDest = self.replaceTemplates(fileDest, fileInfo)
         if not fileSrc or not fileDest: