diff -Naur libsmbios-2.2.19.orig/src/bin/dellMediaDirectCtl.cpp libsmbios-2.2.19/src/bin/dellMediaDirectCtl.cpp
--- libsmbios-2.2.19.orig/src/bin/dellMediaDirectCtl.cpp	2009-02-26 14:29:03.000000000 +0000
+++ libsmbios-2.2.19/src/bin/dellMediaDirectCtl.cpp	2011-01-20 06:55:48.000000000 +0000
@@ -183,16 +183,21 @@
 {
     iopl(3);
 
+    u32 tmpebx;
     __asm__ __volatile__ (
-           //   magic    port
-        "outb   %%al,    %%dx     \n\t"
-
+          "movl   %%ebx,%[tmpebx]\n\t"
+          "movl   %[ebx],%%ebx\n\t"
+      //   magic    port
+          "outb   %%al,    %%dx     \n\t"
+          "movl   %%ebx,%[ebx]\n\t"
+          "movl   %[tmpebx],%%ebx\n\t"
         : /* output args */
           "=a" (r->eax),
-          "=b" (r->ebx),
+          [ebx] "=rm" (r->ebx),
           "=c" (r->ecx),
           "=S" (r->esi),
-          "=D" (r->edi)
+          "=D" (r->edi),
+          [tmpebx] "+m" (tmpebx)
         : /* input args */
           "0" (r->eax),
           "1" (r->ebx),