Disable all interrupts not related to the update process before entering flash programming
diff --git a/rmi4update/rmi4update.cpp b/rmi4update/rmi4update.cpp
index 8474b5a..6502a9e 100644
--- a/rmi4update/rmi4update.cpp
+++ b/rmi4update/rmi4update.cpp
@@ -103,6 +103,10 @@
 	fprintf(stdout, "Device Properties:\n");
 	m_device.PrintProperties();
 
+	rc = DisableNonessentialInterupts();
+	if (rc != UPDATE_SUCCESS)
+		return rc;
+
 	rc = ReadF34Queries();
 	if (rc != UPDATE_SUCCESS)
 		return rc;
@@ -204,6 +208,18 @@
 
 }
 
+int RMI4Update::DisableNonessentialInterupts()
+{
+	int rc;
+	unsigned char interruptEnabeMask = m_f34.GetInterruptMask() | m_f01.GetInterruptMask();
+
+	rc = m_device.Write(m_f01.GetControlBase() + 1, &interruptEnabeMask, 1);
+	if (rc < 0)
+		return rc;
+
+	return UPDATE_SUCCESS;
+}
+
 int RMI4Update::FindUpdateFunctions()
 {
 	if (0 > m_device.ScanPDT())