diff --git a/wp-admin/includes/template.php b/wp-admin/includes/template.php
index 17ba5b0..7afcffe 100644
--- a/wp-admin/includes/template.php
+++ b/wp-admin/includes/template.php
@@ -1098,7 +1098,7 @@ function add_settings_section($id, $title, $callback, $page) {
 	if ( !isset($wp_settings_sections[$page][$id]) )
 		$wp_settings_sections[$page][$id] = array();
 
-	$wp_settings_sections[$page][$id] = array('id' => $id, 'title' => $title, 'callback' => $callback);
+	$wp_settings_sections[$page][$id] = compact( 'id', 'title', 'callback' );
 }
 
 /**
@@ -1138,7 +1138,7 @@ function add_settings_field($id, $title, $callback, $page, $section = 'default',
 	if ( !isset($wp_settings_fields[$page][$section]) )
 		$wp_settings_fields[$page][$section] = array();
 
-	$wp_settings_fields[$page][$section][$id] = array('id' => $id, 'title' => $title, 'callback' => $callback, 'args' => $args);
+	$wp_settings_fields[$page][$section][$id] = compact( 'id', 'title', 'callback', 'args' );
 }
 
 /**
@@ -1199,7 +1199,7 @@ function do_settings_fields($page, $section) {
 		else
 			echo '<th scope="row">' . $field['title'] . '</th>';
 		echo '<td>';
-		call_user_func($field['callback'], $field['args']);
+		call_user_func($field['callback'], $field['args'], $field['id'], $section, $page);
 		echo '</td>';
 		echo '</tr>';
 	}
