Index: code/object/object.cpp
===================================================================
--- code/object/object.cpp	(revision 9697)
+++ code/object/object.cpp	(working copy)
@@ -393,6 +393,8 @@
 	if (!Object_inited) obj_init();
 
 	Assert( objnum >= 0 );	// Trying to free bogus object!!!
+    
+    mprintf(("obj_free() called on Objects[%i]\n", objnum));
 
 	// get object pointer
 	objp = &Objects[objnum];
@@ -520,6 +522,11 @@
 		return;
 	};	
 
+    mprintf(("obj_delete() called on Objects[%i] of type %s\n", objnum, Object_type_names[objp->type]));
+    if (objp->type == OBJ_WEAPON) {
+        mprintf(("  Objects[%i]: Weapon name = %s\n", objnum, Weapon_info[Weapons[objp->instance].weapon_info_index].name));
+    }
+    
 	// Remove all object pairs
 	if ( Cmdline_old_collision_sys ) {
 		obj_remove_pairs( objp );
@@ -598,7 +605,7 @@
 
 	// if a persistant sound has been created, delete it
 	obj_snd_delete_type(OBJ_INDEX(objp));		
-
+    
 	objp->type = OBJ_NONE;		//unused!
 	objp->signature = 0;		
 
Index: code/ai/aicode.cpp
===================================================================
--- code/ai/aicode.cpp	(revision 9697)
+++ code/ai/aicode.cpp	(working copy)
@@ -9151,6 +9151,7 @@
 	ai_info	*attacking_aip;
 	ship_obj	*so;
 	int		count = 0;
+    mprintf(("Target object is Objects[%i]\n", target_objnum));
 	int target_team = obj_team(&Objects[target_objnum]);
 
 	for ( so = GET_FIRST(&Ship_obj_list); so != END_OF_LIST(&Ship_obj_list); so = GET_NEXT(so) )
