diff --git a/addressbook/inc/class.addressbook_groupdav.inc.php b/addressbook/inc/class.addressbook_groupdav.inc.php
index 657d5b0e38..384f5b0641 100644
--- a/addressbook/inc/class.addressbook_groupdav.inc.php
+++ b/addressbook/inc/class.addressbook_groupdav.inc.php
@@ -868,15 +868,13 @@ class addressbook_groupdav extends groupdav_handler
 	/**
 	 * Return appliction specific settings
 	 *
-	 * return array of array with settings
+	 * @param array $hook_data
+	 * @return array of array with settings
 	 */
-	static function get_settings()
+	static function get_settings($hook_data)
 	{
-		if ($hook_data['setup'])
-		{
-			$addressbooks = array();
-		}
-		else
+		$addressbooks = array();
+		if (!isset($hook_data['setup']))
 		{
 			$user = $GLOBALS['egw_info']['user']['account_id'];
 			$addressbook_bo = new addressbook_bo();
diff --git a/calendar/inc/class.calendar_groupdav.inc.php b/calendar/inc/class.calendar_groupdav.inc.php
index 3e0492eaf1..2089ab4a23 100644
--- a/calendar/inc/class.calendar_groupdav.inc.php
+++ b/calendar/inc/class.calendar_groupdav.inc.php
@@ -1252,15 +1252,13 @@ class calendar_groupdav extends groupdav_handler
 	/**
 	 * Return appliction specific settings
 	 *
-	 * return array of array with settings
+	 * @param array $hook_data
+	 * @return array of array with settings
 	 */
-	static function get_settings()
+	static function get_settings($hook_data)
 	{
-		if ($hook_data['setup'])
-		{
-			$calendars = array();
-		}
-		else
+		$calendars = array();
+		if (!isset($hook_data['setup']))
 		{
 			$user = $GLOBALS['egw_info']['user']['account_id'];
 			$cal_bo = new calendar_bo();
diff --git a/infolog/inc/class.infolog_groupdav.inc.php b/infolog/inc/class.infolog_groupdav.inc.php
index 79b49788f8..cfdfba2801 100644
--- a/infolog/inc/class.infolog_groupdav.inc.php
+++ b/infolog/inc/class.infolog_groupdav.inc.php
@@ -610,20 +610,23 @@ class infolog_groupdav extends groupdav_handler
 	/**
 	 * Return appliction specific settings
 	 *
-	 * return array of array with settings
+	 * @param array $hook_data
+	 * @return array of array with settings
 	 */
-	static function get_settings()
+	static function get_settings($hook_data)
 	{
-		translation::add_app('infolog');
-		$infolog = new infolog_bo();
-
-		if (!($types = $infolog->enums['type']))
+		if (!isset($hook_data['setup']))
+		{
+			translation::add_app('infolog');
+			$infolog = new infolog_bo();
+			$types = $infolog->enums['type'];
+		}
+		if (!isset($types))
 		{
 			$types = array(
 				'task' => 'Tasks',
 			);
 		}
-
 		$settings = array();
 		$settings['infolog-types'] = array(
 			'type'   => 'multiselect',
diff --git a/phpgwapi/inc/class.groupdav_handler.inc.php b/phpgwapi/inc/class.groupdav_handler.inc.php
index 4176f261e5..0bd073c019 100644
--- a/phpgwapi/inc/class.groupdav_handler.inc.php
+++ b/phpgwapi/inc/class.groupdav_handler.inc.php
@@ -498,9 +498,10 @@ abstract class groupdav_handler
 	/**
 	 * Return appliction specific settings
 	 *
-	 * return array of array with settings
+	 * @param array $hook_data
+	 * @return array of array with settings
 	 */
-	static function get_settings()
+	static function get_settings($hook_data)
 	{
 		return array();
 	}
diff --git a/phpgwapi/inc/class.groupdav_hooks.inc.php b/phpgwapi/inc/class.groupdav_hooks.inc.php
index fe6aae8bf6..5d129ce987 100644
--- a/phpgwapi/inc/class.groupdav_hooks.inc.php
+++ b/phpgwapi/inc/class.groupdav_hooks.inc.php
@@ -65,7 +65,7 @@ class groupdav_hooks
 			$class_name = $app.'_groupdav';
 			if (class_exists($class_name, true))
 			{
-				$settings += call_user_func(array($class_name,'get_settings'));
+				$settings += call_user_func(array($class_name,'get_settings'), $hook_data);
 			}
 		}