--- /dev/null
+--- pdns-2.9.15.orig/modules/ldapbackend/utils.hh Thu Oct 23 20:35:55 2003
++++ pdns-2.9.15/modules/ldapbackend/utils.hh Thu Feb 19 19:24:28 2004
+@@ -39,28 +39,34 @@
+ parts.pop_back();
+ parts.pop_back();
+
+- while( i < 3 && parts.size() > 1 )
++ while( i < 3 && parts.size() > 1 && parts.back() == "0" )
+ {
+- if( parts.back() != "0" ) { ip += parts.back(); }
+ parts.pop_back();
+ i++;
+ }
+- ip += parts.back();
+- parts.pop_back();
++
++ while( i++ < 4 && !parts.empty() )
++ {
++ ip += parts.back();
++ parts.pop_back();
++ }
+
+ while( !parts.empty() )
+ {
+ i = 0;
+ ip += ":";
+
+- while( i < 3 && parts.size() > 1 )
++ while( i < 3 && parts.size() > 1 && parts.back() == "0" )
+ {
+- if( parts.back() != "0" ) { ip += parts.back(); }
+ parts.pop_back();
+ i++;
+ }
+- ip += parts.back();
+- parts.pop_back();
++
++ while( i++ < 4 && !parts.empty() )
++ {
++ ip += parts.back();
++ parts.pop_back();
++ }
+ }
+
+ return ip;