<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,5 @@
+* Fix `Template#evaluate` &quot;eating&quot; previous character if `null` was returned from `toTemplateReplacements` function. (Nir, J&#252;rgen H&#246;rmann, kangax)
+
 * Make sure (deficient) APPLET, OBJECT and EMBED elements are extended with simulated methods in IE8. Return early if `_extendedByPrototype` is present on an element. (Tobie Langel, kangax)
 
 * Replace array creation and `Array#include` with a more efficient `RegExp#test`. (kangax)</diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -124,11 +124,11 @@ var Template = Class.create({
    *  with symbols replaced by `object`&#8217;s corresponding properties.
   **/
   evaluate: function(object) {
-    if (Object.isFunction(object.toTemplateReplacements))
+    if (object &amp;&amp; Object.isFunction(object.toTemplateReplacements))
       object = object.toTemplateReplacements();
 
     return this.template.gsub(this.pattern, function(match) {
-      if (object == null) return '';
+      if (object == null) return (match[1] + '');
       
       var before = match[1] || '';
       if (before == '\\') return match[2];</diff>
      <filename>src/lang/template.js</filename>
    </modified>
    <modified>
      <diff>@@ -342,6 +342,12 @@ new Test.Unit.Runner({
       toTemplateReplacements: function() { return { name: this.name, job: this.getJob() } }
     };
     this.assertEqual('My name is Stephan, my job is Web developer', new Template(source).evaluate(subject));
+    
+    var strActual = new Template('foo #{bar} baz').evaluate({
+      toTemplateReplacements: function(){ return null; }
+    });
+    this.assertIdentical('foo  baz', strActual);
+    this.assertIdentical('foo', new Template('foo#{bar}').evaluate(null));
   },
 
   testTemplateEvaluationCombined: function() {</diff>
      <filename>test/unit/string_test.js</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>d655665fb673a6e4cf6c950d5a3965b0ef0b65ef</id>
    </parent>
  </parents>
  <author>
    <name>Juriy Zaytsev</name>
    <email>juriy@kangax.local</email>
  </author>
  <url>http://github.com/sstephenson/prototype/commit/b2492aeec4f2cab86851a97e3cc0ef0d7db3187a</url>
  <id>b2492aeec4f2cab86851a97e3cc0ef0d7db3187a</id>
  <committed-date>2009-06-04T21:14:05-07:00</committed-date>
  <authored-date>2009-05-26T13:26:33-07:00</authored-date>
  <message>Fix `Template#evaluate` &quot;eating&quot; previous character if `null` was returned from `toTemplateReplacements` function.</message>
  <tree>0c0746e53d81720f44ae4690959d888c97f82b1a</tree>
  <committer>
    <name>Andrew Dupont</name>
    <email>prototype@andrewdupont.net</email>
  </committer>
</commit>
