diff --git a/Lib/ldap/dn.py b/Lib/ldap/dn.py
index 00c7b06..cabfed8 100644
--- a/Lib/ldap/dn.py
+++ b/Lib/ldap/dn.py
@@ -29,10 +29,10 @@ def escape_dn_chars(s):
s = s.replace(';' ,'\\;')
s = s.replace('=' ,'\\=')
s = s.replace('\000' ,'\\\000')
- if s[0]=='#' or s[0]==' ':
- s = ''.join(('\\',s))
if s[-1]==' ':
s = ''.join((s[:-1],'\\ '))
+ if s[0]=='#' or s[0]==' ':
+ s = ''.join(('\\',s))
return s
diff --git a/Tests/t_ldap_dn.py b/Tests/t_ldap_dn.py
index 4b4dd31..fd36f86 100644
--- a/Tests/t_ldap_dn.py
+++ b/Tests/t_ldap_dn.py
@@ -50,6 +50,11 @@ def test_escape_dn_chars(self):
self.assertEqual(ldap.dn.escape_dn_chars('#foobar'), '\\#foobar')
self.assertEqual(ldap.dn.escape_dn_chars('foo bar'), 'foo bar')
self.assertEqual(ldap.dn.escape_dn_chars(' foobar'), '\\ foobar')
+ self.assertEqual(ldap.dn.escape_dn_chars(' '), '\\ ')
+ self.assertEqual(ldap.dn.escape_dn_chars(' '), '\\ \\ ')
+ self.assertEqual(ldap.dn.escape_dn_chars('foobar '), 'foobar\\ ')
+ self.assertEqual(ldap.dn.escape_dn_chars('f+o>o,bo\\,b\\