diff --git a/src/obj/NiTimeController.cpp b/src/obj/NiTimeController.cpp
index 119dd5a1d83645d6162e368c91c7aaaa55fb1a10..6c0f3617115754f9e4ddac2eef9dfb827ad53736 100644
--- a/src/obj/NiTimeController.cpp
+++ b/src/obj/NiTimeController.cpp
@@ -86,12 +86,18 @@ void NiTimeController::Write( ostream& out, const map<NiObjectRef,unsigned int>
 		if ( info.version < VER_3_3_0_13 ) {
 			WritePtr32( &(*target), out );
 		} else {
-			if ( target != NULL ) {
-				NifStream( link_map.find( StaticCast<NiObject>(target) )->second, out, info );
-			} else {
-				NifStream( 0xFFFFFFFF, out, info );
-			}
-		}
+                  if ( target != NULL ) {
+                    map<NiObjectRef,unsigned int>::const_iterator it = link_map.find( StaticCast<NiObject>(target) );
+                    if (it != link_map.end()) {
+                      NifStream( it->second, out, info );
+                    } else {
+                      //std::cerr << "warning: referenced block not in tree; omitting" << std::endl;
+                      NifStream( 0xFFFFFFFF, out, info );
+                    }
+                  } else {
+                    NifStream( 0xFFFFFFFF, out, info );
+                  }
+                }
 	};
 	if ( info.version <= 0x03010000 ) {
 		NifStream( unknownInteger, out, info );