diff --git a/nodes/core/social/27-twitter.html b/nodes/core/social/27-twitter.html
index 6993ee290..e95b8701f 100644
--- a/nodes/core/social/27-twitter.html
+++ b/nodes/core/social/27-twitter.html
@@ -111,10 +111,11 @@
         
     
     
-        
+        
         
     
     
@@ -141,7 +142,7 @@
         defaults: {
             twitter: {type:"twitter-credentials",required:true},
             tags: {value:"",required:true},
-            user: {value:"false",required:true},
+            user: {value:"public",required:true},
             name: {value:""},
             topic: {value:"tweets"}
         },
@@ -153,6 +154,21 @@
         },
         labelStyle: function() {
             return this.name?"node_label_italic":"";
+        },
+        oneditprepare: function() {
+            $("#node-input-user").change(function() {
+                var type = $("#node-input-user option:selected").val();
+                if (type == "user") {
+                    $("#node-input-tags-label").html("User");
+                    $("#node-input-tags").attr("placeholder","comma-separated @twitter handles");
+                } else {
+                    $("#node-input-tags-label").html("for");
+                    $("#node-input-tags").attr("placeholder","comma-separated words, @ids, #hashtags");
+                }                
+
+            });
+            $("#node-input-user").change();
+        
         }
     });
 
diff --git a/nodes/core/social/27-twitter.js b/nodes/core/social/27-twitter.js
index 2548349ca..326b89b09 100644
--- a/nodes/core/social/27-twitter.js
+++ b/nodes/core/social/27-twitter.js
@@ -44,10 +44,55 @@ function TwitterInNode(n) {
         });
 
         var node = this;
-        if (this.tags !== "") {
+        if (this.user === "user") {
+            node.poll_ids = [];
+            node.since_ids = {};
+            var users = node.tags.split(",");
+            for (var i=0;i=0;t-=1) {
+                                        var tweet = cb[t];
+                                        var where = tweet.user.location||"";
+                                        var la = tweet.lang || tweet.user.lang;
+                                        //console.log(tweet.user.location,"=>",tweet.user.screen_name,"=>",pay);
+                                        var msg = { topic:node.topic+"/"+tweet.user.screen_name, payload:tweet.text, location:where, lang:la, tweet:tweet };
+                                        node.send(msg);
+                                        if (t == 0) {
+                                            node.since_ids[u] = tweet.id_str;
+                                        }
+                                    }
+                                }
+                                if (err) {
+                                    node.error(err);
+                                }
+                            });
+                        },60000));
+                    }
+                }());
+            }
+        } else if (this.tags !== "") {
             try {
                 var thing = 'statuses/filter';
-                if (this.user == "true") { thing = 'user'; }
+                if (this.user === "true") { thing = 'user'; }
                 var st = { track: [node.tags] };
                 var bits = node.tags.split(",");
                 if ((bits.length > 0) && (bits.length % 4 == 0)) {
@@ -110,6 +155,11 @@ function TwitterInNode(n) {
             this.active = false;
             this.stream.destroy();
         }
+        if (this.poll_ids) {
+            for (var i=0;i