diff --git a/webform.module b/webform.module
index 6479a50..de4aa1d 100644
--- a/webform.module
+++ b/webform.module
@@ -3182,7 +3182,11 @@ function webform_component_invoke($type, $callback) {
   $function = '_webform_' . $callback . '_' . $type;
   webform_component_include($type);
   if (function_exists($function)) {
-    return call_user_func_array($function, $args);
+    $data = call_user_func_array($function, $args);
+    if ('default' === $callback || 'edit' === $callback || 'render' === $callback) {
+      call_user_func_array('drupal_alter', array_merge(array('webform_component_' . $callback, &$data), $args));
+    }
+    return $data;
   }
 }
 
