diff --git a/classes/themes/astro.class.php b/classes/themes/astro.class.php
index 47dc349..0ca1ede 100644
--- a/classes/themes/astro.class.php
+++ b/classes/themes/astro.class.php
@@ -207,7 +207,7 @@
       }
     }
 
-    return implode($items, '');
+    return implode('', $items);
   }
 
   public function getMobileMenu() {
@@ -217,7 +217,7 @@
 
     // Temporarily only support non-default
     if ($this->isDefaultMenu()) {
-      return implode($items, '');
+      return implode('', $items);
     }
 
     foreach ($main_menu as $item) {
@@ -230,7 +230,7 @@
 EOHTML;
     }
 
-    return implode($items, '');
+    return implode('', $items);
   }
 
   public function getToolbarLinks() {
diff --git a/classes/themes/baseTheme.class.php b/classes/themes/baseTheme.class.php
index bafdc66..a0407af 100644
--- a/classes/themes/baseTheme.class.php
+++ b/classes/themes/baseTheme.class.php
@@ -643,7 +643,7 @@
       return TRUE;
     }
 
-    $number_value = count($value);
+    $number_value = is_array($value) ?  count($value) : 1;
     $value = explode(' ', $value);
     $count = 0;
     foreach ($value as $val) {
diff --git a/system/app.class.php b/system/app.class.php
index c24c3e7..c055dfe 100644
--- a/system/app.class.php
+++ b/system/app.class.php
@@ -413,7 +413,7 @@
    *
    */
   public function setSystemMessage($name, $msg, $type) {
-    if (get_class($this->Messages) !== 'Messages') {
+    if (!is_object($this->Messages) || get_class($this->Messages) !== 'Messages') {
       require_once ($this->getBasePath() . "/system/messages.class.php");
       $this->Messages = new Messages();
     }
@@ -426,7 +426,7 @@
    * @return array
    */
   public function getSystemMessage() {
-    if (get_class($this->Messages) !== 'Messages') {
+    if (!is_object($this->Messages) || get_class($this->Messages) !== 'Messages') {
       require_once ($this->getBasePath() . "/system/messages.class.php");
       $this->Messages = new Messages();
     }
@@ -2060,7 +2060,7 @@
       echo "<p><font size=\"+2\">Query Trace: </font> In ascending order from oldest to newest";
       echo "<div style=\"font-family: courier;\">";
       foreach ($this->query_btrace as $query) {
-        echo "&nbsp;&nbsp;&nbsp;&nbsp;<b>$row.) " . $query{0} . " (" . $query{2} . ")rows:</b> " . $query{1} . "<br>\n";
+        echo "&nbsp;&nbsp;&nbsp;&nbsp;<b>$row.) " . $query[0] . " (" . $query[2] . ")rows:</b> " . $query[1] . "<br>\n";
         $row++;
       }
       echo "</div>";
