Can't get preprocess_node function to override items
If you look at node.tpl.php, the title is being printed like this:

&lt;?php if (!$page): ?&gt;
  &lt;h2&gt;&lt;a href="&lt;?php print $node_url ?&gt;" title="&lt;?php print $title ?&gt;"&gt;&lt;?php print $title ?&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;?php endif; ?&gt;


As you can see that's using the $title variable, not $node-&gt;title.

There's a one-to-one mapping between the array keys of the template's variables, and names of variables available in the template file. If you have $variables['my_awesome_var'] in the preprocess function, that variable will be available as $my_awesome_var in the template file.

So with that in mind, all you should need to do in your preprocess function is this:

function mythemename_preprocess_node(&amp;$variables) {
  //Profiles
  if ($variables['type'] == "child_profile") {
    $variables['title'] = 'Test';
  }
}


To complete the thought - you could also change the node template to print $node-&gt;title instead, and your current code would work fine. But since the original template file uses a separate $title variable, it would be better to stick to convention and use that method.