diff --git a/CHANGES b/CHANGES
index 06a1386a9349d99a199467138fa9f61ea1b94669..a33fb58d8c09bbcd7fcbf283a2158d6545ba1f66 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,7 @@
 OpenLDAP 2.4 Change Log
 
 OpenLDAP 2.4.25 Engineering
+	Fixed tools for incompatible args (ITS#6849)
 	Fixed slapd add objectclasses in order (ITS#6837)
 	Fixed slapd sortval handling (ITS#6845)
 	Fixed slapd-ldap chain cn=config support (ITS#6837)
diff --git a/clients/tools/common.c b/clients/tools/common.c
index 895eb6676b06f40e58e544cb0fd0f4c898d04995..f3369460c1c2c71daf0902473f0c22229b1e733e 100644
--- a/clients/tools/common.c
+++ b/clients/tools/common.c
@@ -1127,6 +1127,12 @@ tool_args( int argc, char **argv )
 		}
 #endif
 	}
+
+	if ( ( pw_file || want_bindpw ) && !BER_BVISNULL( &passwd ) ) {
+		fprintf( stderr, "%s: -%c incompatible with -w\n",
+			prog, ( pw_file ? 'y' : 'W' ) );
+		exit( EXIT_FAILURE );
+	}
 }