diff --git a/clients/tools/ldapsearch.c b/clients/tools/ldapsearch.c
index f476af77f7082b6201ca1d07dcd84b8ff8c014b8..065dc790def37494edbbfa230798e16b3aa47430 100644
--- a/clients/tools/ldapsearch.c
+++ b/clients/tools/ldapsearch.c
@@ -94,15 +94,16 @@ main( int argc, char **argv )
     LDAP		*ld;
 
     infile = NULL;
-    deref = verbose = allow_binary = not = kerberos = vals2tmp =
+    verbose = allow_binary = not = kerberos = vals2tmp =
 	    attrsonly = ldif = 0;
 #ifdef LDAP_REFERRALS
     ldap_options = LDAP_OPT_REFERRALS;
 #else /* LDAP_REFERRALS */
     ldap_options = 0;
 #endif /* LDAP_REFERRALS */
-    sizelimit = timelimit = 0;
-    scope = LDAP_SCOPE_SUBTREE;
+
+    deref = sizelimit = timelimit = -1;
+	scope = LDAP_SCOPE_SUBTREE;
 
     while (( i = getopt( argc, argv,
 #ifdef HAVE_KERBEROS
@@ -260,9 +261,15 @@ main( int argc, char **argv )
 	exit( 1 );
     }
 
-    ld->ld_deref = deref;
-    ld->ld_timelimit = timelimit;
-    ld->ld_sizelimit = sizelimit;
+	if(deref != -1) {
+    	ld->ld_deref = deref;
+	}
+	if(timelimit != -1) {
+    	ld->ld_timelimit = timelimit;
+	}
+	if(sizelimit != -1) {
+    	ld->ld_sizelimit = sizelimit;
+	}
     ld->ld_options = ldap_options;
 
     if ( !kerberos ) {