Index: getid3/audio_getid3.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/audio/getid3/audio_getid3.module,v
retrieving revision 1.3
diff -u -r1.3 audio_getid3.module
--- getid3/audio_getid3.module	19 Jun 2008 08:57:11 -0000	1.3
+++ getid3/audio_getid3.module	25 Sep 2008 21:13:40 -0000
@@ -152,6 +152,7 @@
   }
 
   // Analyze file
+  if(!strlen($filepath)) return FALSE;
   $info = $getid3->analyze($filepath);
 
   // copy out the basic file info
@@ -291,7 +292,7 @@
 
   // prepare a list of tags to be written to the file
   $tags = array();
-  foreach ($node->audio_tags as $tag => $value) {
+  foreach ((array)$node->audio_tags as $tag => $value) {
     if (isset($settings[$tag]) && $settings[$tag]['writetofile']) {
       $tags[$tag] = $value;
     }
@@ -311,7 +312,7 @@
   // then reload them so that the node is in sync with the file/database...
   $info = audio_read_id3tags($node->audio_file['file_path']);
   // ...merge so that any non-written tags will be preserved...
-  $node->audio_tags = array_merge($node->audio_tags, $info['tags']);
+  $node->audio_tags = array_merge((array)$node->audio_tags, (array)$info['tags']);
   // ...merge so that the playcount and downloadable options aren't overwritten.
-  $node->audio_file = array_merge($node->audio_file, $info['fileinfo']);
+  $node->audio_file = array_merge((array)$node->audio_file, (array)$info['fileinfo']);
 }