diff --git a/esphomeyaml/components/custom_component.py b/esphomeyaml/components/custom_component.py
index da85785fb6..81a8371983 100644
--- a/esphomeyaml/components/custom_component.py
+++ b/esphomeyaml/components/custom_component.py
@@ -2,7 +2,7 @@ import voluptuous as vol
 
 import esphomeyaml.config_validation as cv
 from esphomeyaml.const import CONF_ID, CONF_LAMBDA, CONF_COMPONENTS
-from esphomeyaml.cpp_generator import process_lambda, variable
+from esphomeyaml.cpp_generator import process_lambda, variable, Pvariable
 from esphomeyaml.cpp_helpers import setup_component
 from esphomeyaml.cpp_types import Component, ComponentPtr, esphomelib_ns, std_vector
 
@@ -25,8 +25,9 @@ def to_code(config):
 
     rhs = CustomComponentConstructor(template_)
     custom = variable(config[CONF_ID], rhs)
-    for i, comp in enumerate(config.get(CONF_COMPONENTS, [])):
-        setup_component(custom.get_component(i), comp)
+    for i, comp_config in enumerate(config.get(CONF_COMPONENTS, [])):
+        comp = Pvariable(comp_config[CONF_ID], custom.get_component(i))
+        setup_component(comp, comp_config)
 
 
 BUILD_FLAGS = '-DUSE_CUSTOM_COMPONENT'