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);
}
};