diff --git a/lib/godot/producer/producer.js b/lib/godot/producer/producer.js
index <HASH>..<HASH> 100644
--- a/lib/godot/producer/producer.js
+++ b/lib/godot/producer/producer.js
@@ -8,10 +8,11 @@
 var stream = require('stream'),
     ip = require('ip'),
     utile = require('utile'),
-    uuid = require('node-uuid');
+    uuid = require('node-uuid'),
+    tick = typeof setImmediate == 'undefined'
+      ? process.nextTick
+      : setImmediate;
 
-//
-// ### function Producer (options)
 // #### @options {Object} Options for this producer.
 // Constructor function for the Producer object responsible
 // for creating events to process.
@@ -107,7 +108,7 @@ Object.keys(Producer.prototype.types).forEach(function (key) {
         //
         if (value === 0) {
           return (function tickProduce() {
-            process.nextTick(function () {
+            tick(function () {
               self.produce();
               tickProduce();
             });
[fix] use setImmediate and do some fancy things to ensure we have backward compat