diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c
index 228c2ee00937af363663f74867dd10f16c03844a..934e067f8dca40c5602e9e2083400a2e742dc490 100644
--- a/servers/slapd/connection.c
+++ b/servers/slapd/connection.c
@@ -1573,6 +1573,10 @@ connection_input(
 	op->o_preread_attrs = NULL;
 	op->o_postread_attrs = NULL;
 	op->o_vrFilter = NULL;
+	/* clear state if the connection is being reused from inactive */
+	if ( conn->c_conn_state == SLAP_C_INACTIVE ) {
+		memset( &conn->c_pagedresults_state, 0, sizeof( conn->c_pagedresults_state ) );
+	}
 	op->o_pagedresults_state = conn->c_pagedresults_state;
 
 	op->o_res_ber = NULL;
diff --git a/servers/slapd/controls.c b/servers/slapd/controls.c
index 1e06552ccbe66d426f7cec5de9599087e28c620f..097bfd49643806b0e7449124f3e5ef7c105cec97 100644
--- a/servers/slapd/controls.c
+++ b/servers/slapd/controls.c
@@ -917,6 +917,16 @@ static int parsePagedResults (
 
 	} else {
 		/* Initial request.  Initialize state. */
+#if 0
+		if ( op->o_conn->c_pagedresults_state.ps_cookie != 0 ) {
+			/* There's another pagedResults control on the
+			 * same connection; reject new pagedResults controls 
+			 * (allowed by RFC2696) */
+			rs->sr_text = "paged results cookie unavailable; try later";
+			rc = LDAP_UNWILLING_TO_PERFORM;
+			goto done;
+		}
+#endif
 		op->o_pagedresults_state.ps_cookie = 0;
 		op->o_pagedresults_state.ps_count = 0;
 	}