diff --git a/xmlout.js b/xmlout.js
index 66ccdcb..72d7f6e 100644
--- a/xmlout.js
+++ b/xmlout.js
@@ -177,10 +177,7 @@ function prefixMessageWithSN(data) {
     sn = '';
 
     if (data.SN && data.SN.trim()) {
-        sn = data['SN'].replace(/ /g, '-');
-        sn = sn.replace(/[\()]/g, '-');
-        sn = sn.replace(/-/g, '-').trim();
-        return 'SN=' + sn + '; ' + data['MESSAGE'];
+        sn = data['SN'].trim();
     }
     else if (data['MESSAGE'].search(/^SN=.+;/) == -1) {
         if (data['SN'] && data['SN'].trim()) {
@@ -189,9 +186,15 @@ function prefixMessageWithSN(data) {
         else if (config.h2h_out.parse_sn == 'YES') {
             sn = parseSN(data['MESSAGE']);
         }
+    }
 
+    if (sn) {
         sn = sn.replace(/ /g, '-');
-
+        sn = sn.replace(/[\()]/g, '-');
+        sn = sn.replace(/-+/g, '-')
+        sn = sn.replace(/^-+/, '');
+        sn = sn.replace(/-+$/, '');
+        sn = sn.trim();
         return 'SN=' + sn + '; ' + data['MESSAGE'];
     }