Index: trunk/ippTools/src/difftool.c
===================================================================
--- trunk/ippTools/src/difftool.c	(revision 14271)
+++ trunk/ippTools/src/difftool.c	(revision 14357)
@@ -557,4 +557,10 @@
     }
 
+    psS16 code = psMetadataLookupS16(&status, config->args, "-code");
+    if (!status) {
+        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -code");
+        return false;
+    }
+
     psString uri = psMetadataLookupStr(&status, config->args, "-uri");
     if (!status) {
@@ -562,5 +568,5 @@
         return false;
     }
-    if (!uri) {
+    if (code == 0 && !uri) {
         psError(PS_ERR_UNKNOWN, true, "-uri is required");
         return false;
@@ -572,5 +578,5 @@
         return false;
     }
-    if (!path_base) {
+    if (code == 0 && !path_base) {
         psError(PS_ERR_UNKNOWN, true, "-path_base is required");
         return false;
@@ -587,11 +593,4 @@
     if (!status) {
         psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -bg_stdev");
-        return false;
-    }
-
-    // default values
-    psS16 code = psMetadataLookupS16(&status, config->args, "-code");
-    if (!status) {
-        psError(PS_ERR_UNKNOWN, false, "failed to lookup value for -code");
         return false;
     }
