diff --git a/cores/arduino/USB/HID.cpp b/cores/arduino/USB/HID.cpp
index 45208b2d89ec665bacba36d81d1ccae8af5a83ee..edcc2167ca4a50f3fe66cb635577fb73fd93a374 100644
--- a/cores/arduino/USB/HID.cpp
+++ b/cores/arduino/USB/HID.cpp
@@ -190,8 +190,6 @@ bool HID_Setup(Setup& setup)
 		if (HID_GET_IDLE == r)
 		{
 			USBDevice.armSend(0, &_hid_idle, 1);
-			// RAM buffer is full, we can send data (IN)
-			USB->DEVICE.DeviceEndpoint[0].EPSTATUSSET.bit.BK1RDY = 1;
 			return true;
 		}
 	}
@@ -207,7 +205,7 @@ bool HID_Setup(Setup& setup)
 		if (HID_SET_IDLE == r)
 		{
 			_hid_idle = setup.wValueH;
-			return true;
+			return false;
 		}
 	}
 	return false;
diff --git a/cores/arduino/USB/USBCore.cpp b/cores/arduino/USB/USBCore.cpp
index 3792c85cd112946702e6ffccd93a02b38db59b8b..3baf7cc50601c665aad81662923e112f75729ea0 100644
--- a/cores/arduino/USB/USBCore.cpp
+++ b/cores/arduino/USB/USBCore.cpp
@@ -361,7 +361,7 @@ bool USBDeviceClass::handleClassInterfaceSetup(Setup& setup)
 	#if defined(HID_ENABLED)
 	if (HID_INTERFACE == i)
 	{
-		if (HID_Setup(setup) == true) {
+		if (HID_Setup(setup) == false) {
 			sendZlp(0);
 		}
 		return true;