Index: server-tools/src/main/java/org/apache/directory/server/tools/DumpCommand.java
===================================================================
--- server-tools/src/main/java/org/apache/directory/server/tools/DumpCommand.java	(revision 427934)
+++ server-tools/src/main/java/org/apache/directory/server/tools/DumpCommand.java	(working copy)
@@ -44,10 +44,12 @@
 import org.apache.directory.server.core.schema.AttributeTypeRegistry;
 import org.apache.directory.server.core.schema.bootstrap.BootstrapRegistries;
 import org.apache.directory.server.core.schema.bootstrap.BootstrapSchemaLoader;
+import org.apache.directory.shared.ldap.ldif.LdifUtils;
 import org.apache.directory.shared.ldap.message.LockableAttributeImpl;
 import org.apache.directory.shared.ldap.message.LockableAttributesImpl;
 import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.schema.UsageEnum;
+import org.apache.directory.shared.ldap.util.Base64;
 
 
 /**
@@ -155,7 +157,31 @@
                     entry.put( myattr );
                     for ( int ii = 0; ii < attr.size(); ii++ )
                     {
-                        myattr.add( attr.get( ii ) );
+                    	Object value = attr.get(ii);
+                        
+                        // Checking if the value is binary
+                        if ( value instanceof byte[] )
+                        {
+                        	// It is binary, so we have to encode it using Base64 before adding it
+                        	char[] encoded = Base64.encode( ( byte[] ) value );
+                        	
+                        	myattr.add( new String( encoded ) );                        	
+                        }
+                        else if ( value instanceof String )
+                        {
+                        	// It's a String but, we have to check if encoding isn't required
+                        	String str = (String) value;
+                        	if ( !LdifUtils.isLDIFSafe( str ) )
+                        	{
+                        		char[] encoded = Base64.encode( ( ( String ) value ).getBytes() );
+                        		
+                        		myattr.add( new String( encoded ) );
+                        	}
+                        	else
+                        	{
+                        		myattr.add( value );
+                        	}
+                        }
                     }
                 }
             }
