Code by Inyeol Lee, submitted to SF bug 595350, to implement
the string/unicode method .replace() with a zero-lengt first argument.
Inyeol contributed tests for this too.
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index 4efa39c..90147eb 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -210,12 +210,10 @@
 test('replace', u'one!two!three!', u'one@two@three@', u'!', u'@')
 test('replace', u'one!two!three!', u'one!two!three!', u'x', u'@')
 test('replace', u'one!two!three!', u'one!two!three!', u'x', u'@', 2)
-try:
-    u"abc".replace(u"", u"x")
-except ValueError:
-    pass
-else:
-    raise TestFailed, "u.replace('', ...) should raise ValueError"
+test('replace', u'abc', u'-a-b-c-', u'', u'-')
+test('replace', u'abc', u'-a-b-c', u'', u'-', 3)
+test('replace', u'abc', u'abc', u'', u'-', 0)
+test('replace', u'', u'', u'', u'')
 
 test('startswith', u'hello', True, u'he')
 test('startswith', u'hello', True, u'hello')