diff --git a/RCSwitch.cpp b/RCSwitch.cpp
index fc7c7a354ce11bfc9f314cb9b24c31d5f5a9ab06..34fa7ba0fedaf784b2f4519213f79c6095f551ff 100644
--- a/RCSwitch.cpp
+++ b/RCSwitch.cpp
@@ -64,6 +64,12 @@ void RCSwitch::setProtocol(int nProtocol) {
   else if (nProtocol == 3) {
     this->setPulseLength(100);
   }
+  else if (nProtocol == 4) {
+    this->setPulseLength(380);
+  }
+  else if (nProtocol == 5) {
+    this->setPulseLength(500);
+  }
 }
 
 /**
@@ -511,6 +517,12 @@ void RCSwitch::send0() {
     else if (this->nProtocol == 3) {
         this->transmit(4,11);
     }
+    else if (this->nProtocol == 4) {
+        this->transmit(1,3);
+    }
+    else if (this->nProtocol == 5) {
+        this->transmit(1,2);
+    }
 }
 
 /**
@@ -530,6 +542,12 @@ void RCSwitch::send1() {
     else if (this->nProtocol == 3) {
         this->transmit(9,6);
     }
+    else if (this->nProtocol == 4) {
+        this->transmit(3,1);
+    }
+	else if (this->nProtocol == 5) {
+        this->transmit(2,1);
+    }
 }
 
 
@@ -581,6 +599,12 @@ void RCSwitch::sendSync() {
     else if (this->nProtocol == 3) {
         this->transmit(1,71);
     }
+    else if (this->nProtocol == 4) {
+        this->transmit(1,6);
+    }
+    else if (this->nProtocol == 5) {
+        this->transmit(6,14);
+    }
 }
 
 #if not defined( RCSwitchDisableReceiving )