diff --git a/phpBB/includes/forums_display.php b/phpBB/includes/forums_display.php
index e71746bcb7..4cb1755600 100644
--- a/phpBB/includes/forums_display.php
+++ b/phpBB/includes/forums_display.php
@@ -111,16 +111,16 @@ foreach ($forum_rows as $row)
if (isset($subforums[$forum_id]))
{
- foreach ($subforums as $row)
+ foreach ($subforums[$forum_id] as $row)
{
$alist[$row['forum_id']] = $row['forum_name'];
}
asort($alist);
$links = array();
- foreach ($alist as $forum_id => $forum_name)
+ foreach ($alist as $subforum_id => $subforum_name)
{
- $links[] = '' . htmlspecialchars($forum_name) . '';
+ $links[] = '' . htmlspecialchars($subforum_name) . '';
}
$subforums_list = implode(', ', $links);
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index dda7a3c393..c4e10c1bef 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -187,40 +187,72 @@ function make_jumpbox($action, $forum_id = false)
global $auth, $template, $lang, $db, $nav_links, $phpEx;
$boxstring = '';
+
$template->assign_vars(array(
'L_GO' => $lang['Go'],
'L_JUMP_TO' => $lang['Jump_to'],
@@ -555,7 +587,10 @@ function obtain_word_list(&$orig_word, &$replacement_word)
function redirect($location)
{
global $db;
- $db->sql_close();
+ if (isset($db))
+ {
+ $db->sql_close();
+ }
$header_location = (@preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE'))) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . $location);
@@ -633,9 +668,10 @@ function message_die($msg_code, $msg_text = '', $msg_title = '')
break;
case ERROR:
+ $db->sql_close();
+
echo '
phpBB 2 :: General Error' . "\n";
echo 'phpBB2 :: General Error
' . $msg_text . '
Contact the site administrator to report this failure