public static function getSlaveConnection($name)
    {
        if (!isset(self::$connectionMap[$name]['slave'])) {

            $slaveconfigs = isset(self::$configuration['datasources'][$name]['slaves']) ? self::$configuration['datasources'][$name]['slaves'] : null;

            if (empty($slaveconfigs)) {
                // no slaves configured for this datasource
                // fallback to the master connection
                self::$connectionMap[$name]['slave'] = self::getMasterConnection($name);
            } else {
                // Initialize a new slave
                if (isset($slaveconfigs['connection']['dsn'])) {
                    // only one slave connection configured
                    $conparams = $slaveconfigs['connection'];
                } else {
                    // more than one sleve connection configured
                    // pickup a random one
                    $randkey = array_rand($slaveconfigs['connection']);
                    $conparams = $slaveconfigs['connection'][$randkey];
                    if (empty($conparams)) {
                        throw new PropelException('No connection information in your runtime configuration file for SLAVE [' . $randkey . '] to datasource [' . $name . ']');
                    }
                }

                // initialize slave connection
                $con = Propel::initConnection($conparams, $name);
                self::$connectionMap[$name]['slave'] = $con;
            }
        } // if datasource slave not set

        return self::$connectionMap[$name]['slave'];
    }