diff --git a/lib/client/platform/cordova/3.0.0/bridge/insomnia.js b/lib/client/platform/cordova/3.0.0/bridge/insomnia.js
new file mode 100644
index 0000000..5037b55
--- /dev/null
+++ b/lib/client/platform/cordova/3.0.0/bridge/insomnia.js
@@ -0,0 +1,44 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.
+ *
+ */
+
+module.exports = {
+
+    keepAwake: function (win, fail, args) {
+
+        if( !$.isArray(args) ) throw new Error('Arguments must be an array');
+
+        if( args.length > 0  ) throw new Error('No Arguments beside the callbacks allowed');
+
+        console.warn('insomnia.keepAwake() has been called!');
+
+    },
+
+    allowSleepAgain: function (win, fail, args) {
+
+        if( !$.isArray(args) ) throw new Error('Arguments must be an array');
+
+        if( args.length > 0  ) throw new Error('No Arguments beside the callbacks allowed');
+
+        console.warn('insomnia.allowSleepAgain() has been called!');
+
+    }
+
+};
diff --git a/lib/client/platform/cordova/3.0.0/spec.js b/lib/client/platform/cordova/3.0.0/spec.js
index e9bc302..75a0181 100644
--- a/lib/client/platform/cordova/3.0.0/spec.js
+++ b/lib/client/platform/cordova/3.0.0/spec.js
@@ -63,6 +63,9 @@
         // scandit barcode scanner @see https://github.com/Scandit/BarcodeScannerPlugin
         bridge.add("ScanditSDK", ripple('platform/cordova/3.0.0/bridge/scanditsdk'));
 
+        // Eddy Verbruggen's Insomnia-PhoneGap-Plugin (https://github.com/EddyVerbruggen/Insomnia-PhoneGap-Plugin)
+        bridge.add("Insomnia", ripple('platform/cordova/3.0.0/bridge/insomnia'));
+
         // RIPPLE-71 BarcodeScaner plugin support @see https://github.com/phonegap-build/BarcodeScanner
         bridge.add("BarcodeScanner", ripple('platform/cordova/3.0.0/bridge/barcodescanner'));
 
