diff --git a/nodes/logic/10-switch.html b/nodes/logic/10-switch.html
new file mode 100644
index 000000000..e64aadfa7
--- /dev/null
+++ b/nodes/logic/10-switch.html
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
diff --git a/nodes/logic/10-switch.js b/nodes/logic/10-switch.js
new file mode 100644
index 000000000..298e205ba
--- /dev/null
+++ b/nodes/logic/10-switch.js
@@ -0,0 +1,67 @@
+/**
+ * Copyright 2013 IBM Corp.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ **/
+
+var RED = require("../../red/red");
+
+var operators = {
+ 'eq':function(a,b) { return a == b; },
+ 'neq':function(a,b) { return a != b; },
+ 'lt':function(a,b) { return a < b; },
+ 'lte':function(a,b) { return a <= b; },
+ 'gt':function(a,b) { return a > b; },
+ 'gte':function(a,b) { return a >= b; },
+ 'btwn':function(a,b,c) { return a >= b && a <= c; },
+ 'cont':function(a,b) { return (a+"").indexOf(b) != -1; },
+ 'regex': function(a,b) { return (a+"").match(new RegExp(b)); },
+ 'true': function(a) { return a === true; },
+ 'false': function(a) { return a === false; },
+ 'null': function(a) { return a === null; },
+ 'nnull': function(a) { return a !== null; }
+};
+
+
+function SwitchNode(n) {
+ RED.nodes.createNode(this,n);
+
+ this.rules = n.rules;
+ this.property = n.property;
+
+ this.ruleFuncs = [];
+
+ for (var i=0;i