diff --git a/xmlout.js b/xmlout.js
index 312d8c1..3f126f8 100644
--- a/xmlout.js
+++ b/xmlout.js
@@ -18,6 +18,32 @@ var taskHistory = LRU({max: 500, maxAge: 1000 * 3600 * 2});
 process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
 http.globalAgent.maxSockets = Infinity;
 
+var irsRc = {
+    '0': '00',
+    '00': '00',
+    '1': '00',
+    '2': '14',
+    '17': '40',
+    '63': '40',
+    '89': '40',
+    '68': '68',
+    '94': '68',
+    '05': '40',
+    '30': '40',
+    '51': '40',
+    '13': '40',
+    '14': '14',
+    '91': '40',
+    '40': '40',
+    '49': '40',
+    '53': '40',
+    '54': '40',
+    '914': '55',
+    '55': '55',
+    '06': '40',
+    '92': '40'
+}
+
 function callbackReport(requestId, responseCode, message, dontResendDelay, raw) {
     var responseToSave = {
         parsed: {
@@ -208,18 +234,9 @@ function createPlainHttpServer() {
 
         var request_id = qs.clientid;
 
-        var rc = '68';
-        if (qs.statuscode == '2') {
-            rc = '40';
-        }
-        else if (qs.statuscode == '3') {
-            rc = '40';
-        }
-        else if (qs.statuscode == '4') {
-            rc = '00';
-        }
+        var rc = irsRc[qs.statuscode] || '68';
 
-        var msg = qs.msg;
+        var msg = qs.msg + '. STATUSCODE:' + qs.statuscode;
 
         if (rc == '00' && qs.sn) {
             msg = 'SN=' + qs.sn.trim() + '; ' + msg;