Index: Horde/Horde.php
===================================================================
RCS file: /repository/framework/Horde/Horde.php,v
retrieving revision 1.716
diff -u -r1.716 Horde.php
--- Horde/Horde.php	17 Jun 2009 03:56:20 -0000	1.716
+++ Horde/Horde.php	17 Jun 2009 15:38:29 -0000
@@ -653,6 +653,8 @@
             : $registry->get('fileroot', $app) . '/config/';
         $file = $config_dir . $config_file;
 
+        $output = '';
+
         if (file_exists($file)) {
             /* If we are not exporting variables located in the configuration
              * file, or we are not capturing the output, then there is no
@@ -661,7 +663,7 @@
             $success = (is_null($var_names) && !$show_output)
                 ? include_once $file
                 : include $file;
-            $output = ob_get_clean();
+            $output .= ob_get_clean();
 
             if (!empty($output) && !$show_output) {
                 return PEAR::raiseError(sprintf('Failed to import configuration file "%s": ', $file) . strip_tags($output));
@@ -673,6 +675,31 @@
 
             $was_included = true;
         }
+        
+        // Load global configuration stanzas in .d directory
+        $directory = preg_replace('/\.php$/', '.d', $file);
+        if (file_exists($directory) && is_dir($directory)) {
+            $sub_files = glob("$directory/*.php");
+            if ($sub_files) {
+                foreach ($sub_files as $sub_file) {
+                    ob_start();
+                    $success = (is_null($var_names) && !$show_output)
+                        ? include_once $sub_file
+                        : include $sub_file;
+                    $output .= ob_get_clean();
+
+                    if (!empty($output) && !$show_output) {
+                        return PEAR::raiseError(sprintf('Failed to import configuration file "%s": ', $sub_file) . strip_tags($output));
+                    }
+
+                    if (!$success) {
+                        return PEAR::raiseError(sprintf('Failed to import configuration file "%s".', $sub_file));
+                    }
+                }
+            }
+        }
+
+        $output = '';
 
         // Load vhost configuration file.
         if (!empty($conf['vhosts']) || !empty($GLOBALS['conf']['vhosts'])) {
@@ -686,7 +713,7 @@
                 $success = (is_null($var_names) && !$show_output)
                     ? include_once $file
                     : include $file;
-                $output = ob_get_clean();
+                $output .= ob_get_clean();
 
                 if (!empty($output) && !$show_output) {
                     return PEAR::raiseError(sprintf('Failed to import configuration file "%s": ', $file) . strip_tags($output));
@@ -698,6 +725,29 @@
 
                 $was_included = true;
             }
+            // Load vhost configuration stanzas in .d directory
+            $directory = preg_replace('/\.php$/', '.d', $file);
+            if (file_exists($directory) && is_dir($directory)) {
+                $sub_files = glob("$directory/*.php");
+                if ($sub_files) {
+                    foreach ($files as $sub_file) {
+                        ob_start();
+                        $success = (is_null($var_names) && !$show_output)
+                            ? include_once $sub_file
+                            : include $sub_file;
+                        $output .= ob_get_clean();
+
+                        if (!empty($output) && !$show_output) {
+                            return PEAR::raiseError(sprintf('Failed to import configuration file "%s": ', $sub_file) . strip_tags($output));
+                        }
+
+                        if (!$success) {
+                            return PEAR::raiseError(sprintf('Failed to import configuration file "%s".', $sub_file));
+                        }
+                    }
+                }
+            }
+
         }
 
         // Return an error if neither main or vhosted versions of the config