Pues si, tenias razon, llamaba a un indefinido, con este cacho lo he arreglado, gracias!!
  
Código:
  var files = evt.target.files; 
            var file;
            var targetid = evt.target.id;
            var targetparent = 'prev' + targetid;
            var targetchild = "thumb" + targetid;
            var elparent = document.getElementById(targetparent);
            file = files[0];    
            
            reader = new FileReader();
            reader.onload = (function (tFile) {
                return function (evt) {                        
                    var div = document.createElement('div');
                    div.innerHTML = '<img style="width: 90px;" id = "thumb' + targetid + '" src="' + evt.target.result + '" />';
                    if (document.getElementById(targetchild) == null){
                       elparent.appendChild(div);
                    } else {                        
                         var el = document.getElementById(targetchild);
                         var padre = el.parentNode; 
                         padre.replaceChild(div,el);                   
                    }
                };