diff --git a/install b/install
index 4f4853e6d0a931f82c7ebdacc62eae6983533e74..e9ecca34c406460295a8c5e6ba976d492ac0f63c 100755
--- a/install
+++ b/install
@@ -60,6 +60,7 @@ if test -e $TARGET; then
 fi
 
 mkdir -p $TARGET/{bin,scripts,logs}
+mkdir -p $RTCDS/chans/tmp
 chmod 775 $TARGET/logs
 mkdir -p $TARGET/${system}epics/burt
 if [ -e $RTCDS/target_archive/${system}/${system}_$cur_date/${system}epics/burt ]; then
diff --git a/src/epics/util/lib/IPCmonitor.pm b/src/epics/util/lib/IPCmonitor.pm
index 4a976dff515559e81d889239cc62a81db93c0958..bbcd0831628d302aa006b69391fba5111f5f6fb4 100644
--- a/src/epics/util/lib/IPCmonitor.pm
+++ b/src/epics/util/lib/IPCmonitor.pm
@@ -1,5 +1,6 @@
 package CDS::IPCmonitor;
 use Exporter;
+use File::Path;
 @ISA = ('Exporter');
 
 #//	\page IPCx IPCx.pm
@@ -227,11 +228,17 @@ my @ipcxMaxNum = (-999,-999,-999,-999);
 
    # Develop name of IPC parameter file based on return from above.
         #my ($i) = @_;
-	my $iFile = $::target;
-	$iFile .= "/chans/ipc/";
-	$iFile .= $::ifo;
-	$iFile .= "\.ipc";
+        my $iFilePath =  $::target;
+	$iFilePath .= "/chans/ipc/";
+	my $iFile .= $iFilePath . $::ifo;
+        $iFile .= "\.ipc";
    # Open and input data from IPC parameter file
+   File::Path::make_path($iFilePath);
+   unless (-e $iFile)
+   {
+   	open(TOUCH, ">>$iFile");
+   	close(TOUCH);
+   }
    open(IPCIN, "<$iFile") || die "***ERROR: IPCx parameter file $iFile not found\n";
    chomp(@inData=<IPCIN>);
    close IPCIN;
diff --git a/src/epics/util/lib/IPCx.pm b/src/epics/util/lib/IPCx.pm
index c111009af1236fd4174dc12d7c821259c9efc74b..cf33f621973e9f8d562565cd9c8421fddc619a20 100644
--- a/src/epics/util/lib/IPCx.pm
+++ b/src/epics/util/lib/IPCx.pm
@@ -1,5 +1,6 @@
 package CDS::IPCx;
 use Exporter;
+use File::Path;
 @ISA = ('Exporter');
 
 #//	\page IPCx IPCx.pm
@@ -331,12 +332,18 @@ if ($::ipcxCnt > 0) {
 
 
    # Develop name of IPC parameter file based on return from above.
-        #my ($i) = @_;
-	my $iFile = $::target;
-	$iFile .= "/chans/ipc/";
-	$iFile .= $::ifo;
-	$iFile .= "\.ipc";
+     #my ($i) = @_;
+     my $iFilePath =  $::target;
+     $iFilePath .= "/chans/ipc/";
+     my $iFile .= $iFilePath . $::ifo;
+     $iFile .= "\.ipc";
    # Open and input data from IPC parameter file
+   File::Path::make_path($iFilePath);
+   unless (-e $iFile)
+   {
+     open(TOUCH, ">>$iFile");
+     close(TOUCH);
+   }
    open(IPCIN, "<$iFile") || die "***ERROR: IPCx parameter file $iFile not found\n";
    chomp(@inData=<IPCIN>);
    close IPCIN;