Index: trunk/pswarp/src/pswarpExit.c
===================================================================
--- trunk/pswarp/src/pswarpExit.c	(revision 27189)
+++ trunk/pswarp/src/pswarpExit.c	(revision 27190)
@@ -26,4 +26,5 @@
           case PSWARP_ERR_UNKNOWN:
           case PS_ERR_UNKNOWN:
+            psLogMsg("pswarp", PS_LOG_WARN, "Unknown error code: %x", errorCode);
             return PS_EXIT_UNKNOWN_ERROR;
           case PS_ERR_IO:
@@ -34,4 +35,5 @@
           case PM_ERR_SYS:
           case PSWARP_ERR_IO:
+            psLogMsg("pswarp", PS_LOG_WARN, "I/O error code: %x", errorCode);
             return PS_EXIT_SYS_ERROR;
           case PS_ERR_BAD_PARAMETER_VALUE:
@@ -41,14 +43,20 @@
           case PSWARP_ERR_ARGUMENTS:
           case PSWARP_ERR_CONFIG:
+            psLogMsg("pswarp", PS_LOG_WARN, "Configuration error code: %x", errorCode);
             return PS_EXIT_CONFIG_ERROR;
           case PSPHOT_ERR_PSF:
           case PSWARP_ERR_DATA:
           case PSWARP_ERR_NO_OVERLAP:
+            psLogMsg("pswarp", PS_LOG_WARN, "Data error code: %x", errorCode);
             return PS_EXIT_DATA_ERROR;
           case PS_ERR_UNEXPECTED_NULL:
           case PS_ERR_PROGRAMMING:
           case PSWARP_ERR_NOT_IMPLEMENTED:
+            psLogMsg("pswarp", PS_LOG_WARN, "Programming error code: %x", errorCode);
+            exitValue = PS_EXIT_PROG_ERROR;
+            break;
           default:
             // It's a programming error if we're not dealing with the error correctly
+            psLogMsg("pswarp", PS_LOG_WARN, "Unrecognised error code: %x", errorCode);
             return PS_EXIT_PROG_ERROR;
         }
