diff -ruN -F'^f' drupal-cvs/includes/common.inc /var/www/html/includes/common.inc
--- drupal-cvs/includes/common.inc	2004-07-13 10:00:00.000000000 +0200
+++ /var/www/html/includes/common.inc	2004-07-15 00:39:11.463640872 +0200
@@ -446,6 +446,7 @@ function fix_gpc_magic() {
  */
 function array2object($array) {
   if (is_array($array)) {
+    $object = new stdClass();
     foreach ($array as $key => $value) {
       $object->$key = $value;
     }
diff -ruN -F'^f' drupal-cvs/includes/file.inc /var/www/html/includes/file.inc
--- drupal-cvs/includes/file.inc	2004-06-22 10:00:06.000000000 +0200
+++ /var/www/html/includes/file.inc	2004-07-15 00:35:47.859593392 +0200
@@ -378,6 +378,7 @@ function file_scan_directory($dir, $mask
         }
         elseif (ereg($mask, $file)) {
           $name = basename($file);
+          $files["$dir/$file"] = new stdClass();
           $files["$dir/$file"]->filename = "$dir/$file";
           $files["$dir/$file"]->name = substr($name, 0, strrpos($name, '.'));
           if ($callback) {
diff -ruN -F'^f' drupal-cvs/includes/module.inc /var/www/html/includes/module.inc
--- drupal-cvs/includes/module.inc	2004-01-27 22:00:05.000000000 +0100
+++ /var/www/html/includes/module.inc	2004-07-15 00:29:34.763312648 +0200
@@ -33,7 +33,7 @@ function module_invoke_all($hook, $a1 = 
   $return = array();
   foreach (module_list() as $name) {
     $result = module_invoke($name, $hook, $a1, $a2, $a3, $a4);
-    if (isset($result)) {
+    if (is_array($result)) {
       $return = array_merge($return, $result);
     }
   }
diff -ruN -F'^f' drupal-cvs/modules/block.module /var/www/html/modules/block.module
--- drupal-cvs/modules/block.module	2004-07-10 22:00:01.000000000 +0200
+++ /var/www/html/modules/block.module	2004-07-14 20:05:31.749816792 +0200
@@ -359,7 +359,10 @@ function block_list($region) {
         ** based on server load.
         */
         if (!($block['throttle'] && (module_invoke('throttle', 'status') > 4))) {
-          $block = array_merge($block, module_invoke($block['module'], 'block', 'view', $block['delta']));
+          $array = module_invoke($block['module'], 'block', 'view', $block['delta']);
+          if (is_array($array)) { 
+            $block = array_merge($block, $array);
+          }
         }
         if (isset($block['content']) && $block['content']) {
           $blocks[$region]["$block[module]_$block[delta]"] = (object) $block;
diff -ruN -F'^f' drupal-cvs/modules/node.module /var/www/html/modules/node.module
--- drupal-cvs/modules/node.module	2004-07-10 22:00:01.000000000 +0200
+++ /var/www/html/modules/node.module	2004-07-15 03:01:09.269737520 +0200
@@ -337,7 +337,7 @@ function node_invoke_nodeapi(&$node, $op
     $function = $name .'_nodeapi';
     if (function_exists($function)) {
       $result = $function($node, $op, $a3, $a4);
-      if (isset($result)) {
+      if (is_array($result)) {
         $return = array_merge($return, $result);
       }
     }
@@ -387,7 +387,7 @@ function node_load($conditions, $revisio
   }
 
   // Return the desired revision.
-  if ($revision != -1 && isset($node->revisions[$revision])) {
+  if ($revision != -1 && is_array($node->revisions[$revision])) {
    $node = $node->revisions[$revision]['node'];
   }
 
@@ -831,6 +831,7 @@ function node_default_settings() {
 
   $header = array_merge(array(t('type')), array_keys(node_invoke_nodeapi($node, 'settings')));
   foreach (node_list() as $type) {
+    $node = new StdClass();
     $node->type = $type;
     $cols = array();
     foreach (node_invoke_nodeapi($node, 'settings') as $setting) {
@@ -1225,7 +1226,13 @@ function node_form($edit) {
     }
   }
 
-  return form($output, ($param['method'] ? $param['method'] : 'post'), $param['action'], array_merge($param['options'], array('id' => 'node-form')));
+  if (is_array($param['options'])) {
+    $array = array_merge($param['options'], array('id' => 'node-form'));
+  }
+  else {
+    $array = array('id' => 'node-form');
+  }
+  return form($output, ($param['method'] ? $param['method'] : 'post'), $param['action'], $array);
 }
 
 /**
diff -ruN -F'^f' drupal-cvs/modules/system.module /var/www/html/modules/system.module
--- drupal-cvs/modules/system.module	2004-07-09 10:00:05.000000000 +0200
+++ /var/www/html/modules/system.module	2004-07-15 00:46:47.690283880 +0200
@@ -245,6 +245,7 @@ function system_listing($type) {
 
   foreach ($files as $filename => $file) {
     include_once($filename);
+    $info = new stdClass();
     if ($type == 'module') {
       $info->name = module_invoke($file->name, 'help', 'admin/modules#name') ? module_invoke($file->name, 'help', 'admin/modules#name') : module_invoke($file->name, 'system', 'name') ? module_invoke($file->name, 'system', 'name') : $file->name;
       $info->description = module_invoke($file->name, 'help', 'admin/modules#description') ? module_invoke($file->name, 'help', 'admin/modules#description') : module_invoke($file->name, 'system', 'description');
diff -ruN -F'^f' drupal-cvs/modules/taxonomy.module /var/www/html/modules/taxonomy.module
--- drupal-cvs/modules/taxonomy.module	2004-07-10 22:00:01.000000000 +0200
+++ /var/www/html/modules/taxonomy.module	2004-07-15 02:45:30.349475096 +0200
@@ -825,6 +825,7 @@ function taxonomy_nodeapi($node, $op, $a
 
 function taxonomy_page() {
 
+  $taxonomy = new StdClass();
   $taxonomy->operator = arg(2);
   $taxonomy->str_tids = check_query(arg(3));
   $taxonomy->tids = explode(',', $taxonomy->str_tids);
@@ -844,6 +845,7 @@ function taxonomy_page() {
       }
 
       // Build breadcrumb based on first hierarchy of first term:
+      $current = new StdClass();
       $current->tid = $taxonomy->tids[0];
       $breadcrumbs = array(array('path' => $_GET['q']));
       while ($parents = taxonomy_get_parents($current->tid)) {
diff -ruN -F'^f' drupal-cvs/modules/user.module /var/www/html/modules/user.module
--- drupal-cvs/modules/user.module	2004-07-10 22:00:01.000000000 +0200
+++ /var/www/html/modules/user.module	2004-07-15 02:28:28.219862416 +0200
@@ -49,14 +49,19 @@ function user_load($array = array()) {
   }
   $result = db_query_range("SELECT u.* FROM {users} u WHERE $query u.status < 3", 0, 1);
 
-  $user = db_fetch_object($result);
-  $user = drupal_unpack($user);
-  user_module_invoke('load', $array, $user);
+  if (db_num_rows($result)) {
+    $user = db_fetch_object($result);
+    $user = drupal_unpack($user);
+     user_module_invoke('load', $array, $user);
 
-  $user->roles = array();
-  $result = db_query('SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d', $user->uid);
-  while ($role = db_fetch_object($result)) {
-    $user->roles[$role->rid] = $role->name;
+    $user->roles = array();
+    $result = db_query('SELECT r.rid, r.name FROM {role} r INNER JOIN {users_roles} ur ON ur.rid = r.rid WHERE ur.uid = %d', $user->uid);
+    while ($role = db_fetch_object($result)) {
+      $user->roles[$role->rid] = $role->name;
+    }
+  }
+  else {
+    $user = new StdClass();
   }
 
   return $user;
