diff --git a/lib/Service.js b/lib/Service.js
index <HASH>..<HASH> 100644
--- a/lib/Service.js
+++ b/lib/Service.js
@@ -97,7 +97,7 @@ Service.prototype.getCharacteristic = function(name) {
 	}
 	if (typeof name === 'function')  {
 		for (index in this.optionalCharacteristics) {
-			characteristic = this.characteristics[index];
+			characteristic = this.optionalCharacteristics[index];
 			if (characteristic instanceof name) {
 				return this.addCharacteristic(name);
 			}
Updated Service.js

You are looping through the "optionalCharacteristics", but trying to read at the index of the normal "characteristics". Therefore it will always return "undefined" when you request optional characteristics via "getCharateristics".