diff --git a/signalk-on-delta.js b/signalk-on-delta.js
index <HASH>..<HASH> 100644
--- a/signalk-on-delta.js
+++ b/signalk-on-delta.js
@@ -5,9 +5,26 @@ module.exports = function(RED) {
     var node = this;
 
     var signalk = node.context().global.get('signalk')
+    var app = node.context().global.get('app')
 
     function on_delta(delta) {
-      node.send({ payload: delta })
+      if ( delta.updates ) {
+        var copy = JSON.parse(JSON.stringify(delta))
+        copy.updates = []
+        delta.updates.forEach(update => {
+          if ( update.values &&
+               (!update.$source || !update.$source.startsWith('signalk-node-red') )) {
+            copy.updates.push(update)
+          }
+        })
+
+        if ( copy.updates.length > 0 ) {
+          if ( copy.context == app.selfContext ) {
+            copy.context = 'vessels.self'
+          }
+          node.send({ payload: copy })
+        }
+      }
     }
     
     signalk.on('delta', on_delta)
feature: filter out meta deltas and deltas from node red