diff --git a/nodered/decode_universal_gnss_packet/decode_universal_gnss_packet.js b/nodered/decode_universal_gnss_packet/decode_universal_gnss_packet.js
index 3138297e71117fe9a50a50c8b7f1b74a1a7e7e87..0e18f69514507195b1d35a46205a818cae71c1d8 100644
--- a/nodered/decode_universal_gnss_packet/decode_universal_gnss_packet.js
+++ b/nodered/decode_universal_gnss_packet/decode_universal_gnss_packet.js
@@ -13,17 +13,18 @@ module.exports = function(RED) {
             var hdr_raw = parseInt(buff[len]);
             hdr.altitude_presence_flag = (hdr_raw & 0x80) ? true : false;
             hdr.dop_presence_flag = (hdr_raw & 0x40) ? true : false;
+            hdr.valid_gnss_position = (hdr_raw & 0x20) ? true : false;
             p.header = hdr;
             len += 1;
             
-            // Latitude
-            p.latitude = buff.readFloatLE(len);
-            len += 4;
-            
-            // Longitude
-            p.longitude = buff.readFloatLE(len);
-            len += 4;
-            
+            // If the message has a valid_gnss_position
+            if (p.header.valid_gnss_position ) {
+                p.latitude = buff.readFloatLE(len);
+                len += 4;
+                p.longitude = buff.readFloatLE(len);
+                len += 4;
+            }
+
             // If the message contains the altitude field
             if (p.header.altitude_presence_flag ) {
                 p.altitude = buff.readFloatLE(len);
diff --git a/nodered/encode_universal_gnss_packet/encode_universal_gnss_packet.js b/nodered/encode_universal_gnss_packet/encode_universal_gnss_packet.js
index 7d1c0169ee8bec43a88ba414dbefbb84de41559d..42a591a2ea1a0386d22e5c771b22f9cbe5895dea 100644
--- a/nodered/encode_universal_gnss_packet/encode_universal_gnss_packet.js
+++ b/nodered/encode_universal_gnss_packet/encode_universal_gnss_packet.js
@@ -6,27 +6,28 @@ module.exports = function(RED) {
 
             const buff = Buffer.alloc(128);
             var len = 0;
+            var valid_gnss_position = false;
             var altitude_presence_flag = false;
             var dop_presence_flag = false;
 
-            // Check mandatory fields
-            if (typeof msg.payload.latitude === 'undefined') return;
-            if (typeof msg.payload.longitude === 'undefined') return;
-
             // Check optional fields
+            if ( (typeof msg.payload.latitude !== 'undefined') && (typeof msg.payload.longitude !== 'undefined') ) valid_gnss_position = true;
             if (typeof msg.payload.altitude !== 'undefined') altitude_presence_flag = true;
             if (typeof msg.payload.dop !== 'undefined') dop_presence_flag = true;
 
             // Make header
             if (altitude_presence_flag) buff[len] |= 0x80;
             if (dop_presence_flag) buff[len] |= 0x40;
+            if (valid_gnss_position) buff[len] |= 0x20;
             len += 1;
 
             // Make latitude and longitude fields
-            buff.writeFloatLE(msg.payload.latitude, len);
-            len += 4;
-            buff.writeFloatLE(msg.payload.longitude, len);
-            len += 4;
+            if ( valid_gnss_position ) {
+                buff.writeFloatLE(msg.payload.latitude, len);
+                len += 4;
+                buff.writeFloatLE(msg.payload.longitude, len);
+                len += 4;
+            }
 
             // Make altitude field if present
             if ( altitude_presence_flag ) {
diff --git a/nodered/package.json b/nodered/package.json
index 54a7b6f766b8831722235d4f3c649afff0b78e03..0022eca07da64362e0bf786815d93111fb26d545 100644
--- a/nodered/package.json
+++ b/nodered/package.json
@@ -1,6 +1,6 @@
 {
   "name": "node-red-contrib-locapack",
-  "version": "0.0.5",
+  "version": "0.0.6",
   "description": "Some nodes to interact with LocaPack devices using the LocaPack protocol",
   "dependencies": {
   },