Index: /trunk/ippTools/src/pzgetexp.c
===================================================================
--- /trunk/ippTools/src/pzgetexp.c	(revision 11856)
+++ /trunk/ippTools/src/pzgetexp.c	(revision 11857)
@@ -39,4 +39,8 @@
 
     pxConfig *config = pzgetexpConfig(NULL, argc, argv);
+    if (!config) {
+        psError(PXTOOLS_ERR_CONFIG, false, "failed to configure");
+        goto FAIL;
+    }
 
     if (!go(config)) {
@@ -52,4 +56,5 @@
 FAIL:
     psErrorStackPrint(stderr, "\n");
+    int exit_status = pxerrorGetExitStatus();
     
     psFree(config);
@@ -57,5 +62,5 @@
     psLibFinalize();
 
-    exit(EXIT_FAILURE);
+    exit(exit_status);
 }
 
Index: /trunk/ippTools/src/pzgetexpConfig.c
===================================================================
--- /trunk/ippTools/src/pzgetexpConfig.c	(revision 11856)
+++ /trunk/ippTools/src/pzgetexpConfig.c	(revision 11857)
@@ -29,5 +29,6 @@
 #include "pxtools.h"
 
-pxConfig *pzgetexpConfig(pxConfig *config, int argc, char **argv) {
+pxConfig *pzgetexpConfig(pxConfig *config, int argc, char **argv)
+{
     if (!config) {
         config = pxConfigAlloc();
@@ -39,5 +40,6 @@
     if (! config->modules) {
         psError(PS_ERR_UNKNOWN, false, "Can't find site configuration!\n");
-        exit(EXIT_FAILURE);
+        psFree(config);
+        return NULL;
     }
 
@@ -63,5 +65,5 @@
         psArgumentHelp(args);
         psFree(config);
-        exit(EXIT_FAILURE);
+        return NULL;
     }
 
@@ -75,5 +77,5 @@
         psError(PS_ERR_UNKNOWN, false, "Can't connect to db\n");
         psFree(config);
-        exit(EXIT_FAILURE);
+        return NULL;
     }
 
