uint32_t CUSBCECAdapterCommands::RequestBuildDate(void)
 {
-  CLibCEC::AddLog(CEC_LOG_DEBUG, "requesting firmware build date");
+  if (m_iBuildDate == 0)
+  {
+    CLibCEC::AddLog(CEC_LOG_DEBUG, "requesting firmware build date");
 
-  cec_datapacket response = RequestSetting(MSGCODE_GET_BUILDDATE);
-  if (response.size == 4)
-    return (uint32_t)response[0] << 24 | (uint32_t)response[1] << 16 | (uint32_t)response[2] << 8 | (uint32_t)response[3];
-  return 0;
+    cec_datapacket response = RequestSetting(MSGCODE_GET_BUILDDATE);
+    if (response.size == 4)
+      m_iBuildDate = (uint32_t)response[0] << 24 | (uint32_t)response[1] << 16 | (uint32_t)response[2] << 8 | (uint32_t)response[3];
+  }
+  return m_iBuildDate;
 }
 
 bool CUSBCECAdapterCommands::RequestSettingDefaultLogicalAddress(void)