Index: trunk/PS-IPP-PStamp/lib/PS/IPP/PStamp/RequestFile.pm
===================================================================
--- trunk/PS-IPP-PStamp/lib/PS/IPP/PStamp/RequestFile.pm	(revision 28047)
+++ trunk/PS-IPP-PStamp/lib/PS/IPP/PStamp/RequestFile.pm	(revision 28048)
@@ -17,4 +17,5 @@
 our @EXPORT_OK = qw( 
                     read_request_file
+                    get_error_string
                     $PSTAMP_CENTER_IN_PIXELS
                     $PSTAMP_RANGE_IN_PIXELS
@@ -82,8 +83,41 @@
 our $PSTAMP_NO_OVERLAP       = 28;
 
+
 use IPC::Cmd 0.36 qw( can_run run );
 
 use PS::IPP::Metadata::List qw( parse_md_list );
 use PS::IPP::Config qw( :standard );
+
+my @errorStrings = qw(
+PSTAMP_SUCCESS
+PS_EXIT_UNKNOWN_ERROR
+PS_EXIT_SYS_ERROR
+PS_EXIT_CONFIG_ERROR
+PS_EXIT_PROG_ERROR
+PS_EXIT_DATA_ERROR
+PS_EXIT_TIMEOUT_ERROR
+undefined
+undefined
+undefined
+PSTAMP_SYSTEM_ERROR
+PSTAMP_NOT_IMPLEMENTED
+PSTAMP_UNKNOWN_ERROR
+undefined
+undefined
+undefined
+undefined
+undefined
+undefined
+undefined
+PSTAMP_DUP_REQUEST
+PSTAMP_INVALID_REQUEST
+PSTAMP_UNKNOWN_PRODUCT
+PSTAMP_NO_IMAGE_MATCH
+PSTAMP_NOT_DESTREAKED
+PSTAMP_NOT_AVAILABLE
+PSTAMP_GONE
+PSTAMP_NO_JOBS_QUEUED
+PSTAMP_NO_OVERLAP
+);
 
 sub read_request_file {
@@ -205,3 +239,13 @@
 }
 
+sub get_error_string {
+    my $error_code = shift;
+    my $error_string;
+    if ($error_code >= 0) {
+        $error_string = $errorStrings[$error_code];
+    }
+    $error_string = "unknown" if !$error_string;
+    return $error_string;
+}
+
 1;
