--- IlmImf/ImfSystemSpecific.cpp.orig	2014-08-09 21:23:57.000000000 -0700
+++ IlmImf/ImfSystemSpecific.cpp	2016-05-24 05:49:44.000000000 -0700
@@ -45,8 +45,10 @@
     void cpuid(int n, int &eax, int &ebx, int &ecx, int &edx)
     {
         __asm__ __volatile__ (
-            "cpuid"
-            : /* Output  */ "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx) 
+            "mov %%ebx, %%edi\n"
+            "cpuid\n"
+            "xchg %%edi, %%ebx"
+            : /* Output  */ "=a"(eax), "=D"(ebx), "=c"(ecx), "=d"(edx) 
             : /* Input   */ "a"(n)
             : /* Clobber */);
     }