diff --git a/src/epics/util/feCodeGen.pl b/src/epics/util/feCodeGen.pl
index 3761bb9534af44cf9268dc56b4c14d3e1e1132b7..f22d61d47df10357942a7d58efd5b37753a7fdef 100755
--- a/src/epics/util/feCodeGen.pl
+++ b/src/epics/util/feCodeGen.pl
@@ -1931,7 +1931,6 @@ close OUT;
 
 
 close OUTD;
-close WARNINGS;
 
 #// Write out the User Space Code Here (Just copy it, same code file for both)
 copy("./".$modelCodeKernFilepath, "./".$modelCodeUspFilepath) or die "copy failed: $! : ";
@@ -2314,17 +2313,29 @@ for($ii=0;$ii<$dacCnt;$ii++)
 
 # ******************************************************************************************
 #//		- GENERATE caQtDM SCREENS
-opendir my $dh, $epicsScreensDir;
-while (my $cf = readdir $dh) {
-   if($cf =~ m/.adl/) {
-	my ($fbase,$fext) = split '\.',$cf;
-	system("cp $epicsScreensDir/$cf ." );
-	$ui_output = "$caqtdmScreensDir/$fbase" . ".ui";
-	system("adl2ui $cf");
-	system("cp $fbase.ui $ui_output");
-	system("rm $fbase.ui $cf");
-   }
+
+if ( system("adl2ui -h") == 0 )
+{
+
+    opendir my $dh, $epicsScreensDir;
+    while (my $cf = readdir $dh) {
+       if($cf =~ m/.adl/) {
+        my ($fbase,$fext) = split '\.',$cf;
+        system("cp $epicsScreensDir/$cf ." );
+        $ui_output = "$caqtdmScreensDir/$fbase" . ".ui";
+        system("adl2ui $cf");
+        system("cp $fbase.ui $ui_output");
+        system("rm $fbase.ui $cf");
+       }
+    }
 }
+else #No caQtDM installed skip
+{
+    print WARNINGS "\ncaqtdm is not installed, skipping caQtDM screen generation.\n\n";
+}
+
+close WARNINGS;
+
 
 #//	-  Print source file names into a file
 #