Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp	(revision 56478)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp	(revision 56479)
@@ -817,4 +817,5 @@
         RTStrmPrintf(pStrm,
                      "                            [--audiocontroller ac97|hda|sb16]\n"
+                     "                            [--audiocodec stac9700|ad1980|stac9221|sb16]\n"
                      "                            [--clipboard disabled|hosttoguest|guesttohost|\n"
                      "                                         bidirectional]\n"
Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp	(revision 56478)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp	(revision 56479)
@@ -1483,6 +1483,7 @@
     if (SUCCEEDED(rc))
     {
-        const char *pszDrv  = "Unknown";
-        const char *pszCtrl = "Unknown";
+        const char *pszDrv   = "Unknown";
+        const char *pszCtrl  = "Unknown";
+        const char *pszCodec = "Unknown";
         BOOL fEnabled;
         rc = AudioAdapter->COMGETTER(Enabled)(&fEnabled);
@@ -1557,7 +1558,4 @@
                     break;
                 case AudioControllerType_SB16:
-                    if (details == VMINFO_MACHINEREADABLE)
-                        pszCtrl = "sb16";
-                    else
                         pszCtrl = "SB16";
                     break;
@@ -1569,4 +1567,21 @@
                     break;
             }
+            AudioCodecType_T enmCodecType;
+            rc = AudioAdapter->COMGETTER(AudioCodec)(&enmCodecType);
+            switch (enmCodecType)
+            {
+                case AudioCodecType_SB16:
+                    pszCodec = "SB16";
+                    break;
+                case AudioCodecType_STAC9700:
+                    pszCodec = "STAC9700";
+                    break;
+                case AudioCodecType_AD1980:
+                    pszCodec = "AD1980";
+                    break;
+                case AudioCodecType_STAC9221:
+                    pszCodec = "STAC9221";
+                    break;
+            }
         }
         else
@@ -1584,6 +1599,6 @@
                     fEnabled ? "enabled" : "disabled");
             if (fEnabled)
-                RTPrintf(" (Driver: %s, Controller: %s)",
-                    pszDrv, pszCtrl);
+                RTPrintf(" (Driver: %s, Controller: %s, Codec: %s)",
+                    pszDrv, pszCtrl, pszCodec);
             RTPrintf("\n");
         }
Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp	(revision 56478)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp	(revision 56479)
@@ -139,4 +139,5 @@
     MODIFYVM_GUESTMEMORYBALLOON,
     MODIFYVM_AUDIOCONTROLLER,
+    MODIFYVM_AUDIOCODEC,
     MODIFYVM_AUDIO,
     MODIFYVM_CLIPBOARD,
@@ -307,4 +308,5 @@
     { "--guestmemoryballoon",       MODIFYVM_GUESTMEMORYBALLOON,        RTGETOPT_REQ_UINT32 },
     { "--audiocontroller",          MODIFYVM_AUDIOCONTROLLER,           RTGETOPT_REQ_STRING },
+    { "--audiocodec",               MODIFYVM_AUDIOCODEC,                RTGETOPT_REQ_STRING },
     { "--audio",                    MODIFYVM_AUDIO,                     RTGETOPT_REQ_STRING },
     { "--clipboard",                MODIFYVM_CLIPBOARD,                 RTGETOPT_REQ_STRING },
@@ -2158,4 +2160,26 @@
             }
 
+            case MODIFYVM_AUDIOCODEC:
+            {
+                ComPtr<IAudioAdapter> audioAdapter;
+                sessionMachine->COMGETTER(AudioAdapter)(audioAdapter.asOutParam());
+                ASSERT(audioAdapter);
+
+                if (!RTStrICmp(ValueUnion.psz, "sb16"))
+                    CHECK_ERROR(audioAdapter, COMSETTER(AudioCodec)(AudioCodecType_SB16));
+                else if (!RTStrICmp(ValueUnion.psz, "stac9700"))
+                    CHECK_ERROR(audioAdapter, COMSETTER(AudioCodec)(AudioCodecType_STAC9700));
+                else if (!RTStrICmp(ValueUnion.psz, "ad1980"))
+                    CHECK_ERROR(audioAdapter, COMSETTER(AudioCodec)(AudioCodecType_AD1980));
+                else if (!RTStrICmp(ValueUnion.psz, "stac9221"))
+                    CHECK_ERROR(audioAdapter, COMSETTER(AudioCodec)(AudioCodecType_STAC9221));
+                else
+                {
+                    errorArgument("Invalid --audiocodec argument '%s'", ValueUnion.psz);
+                    rc = E_FAIL;
+                }
+                break;
+            }
+
             case MODIFYVM_AUDIO:
             {
