diff --git a/src/gallium/state_trackers/nine/iunknown.c b/src/gallium/state_trackers/nine/iunknown.c
index c0d2b0d..28e4756 100644
--- a/src/gallium/state_trackers/nine/iunknown.c
+++ b/src/gallium/state_trackers/nine/iunknown.c
@@ -78,6 +78,8 @@
     DBG("This=%p riid=%p id=%s ppvObject=%p\n",
         This, riid, riid ? GUID_sprintf(guid_str, riid) : "", ppvObject);
 
+    (void)guid_str;
+
     if (!ppvObject) return E_POINTER;
 
     do {
@@ -164,6 +166,8 @@
     DBG("This=%p GUID=%s pData=%p SizeOfData=%u Flags=%x\n",
         This, GUID_sprintf(guid_str, refguid), pData, SizeOfData, Flags);
 
+    (void)guid_str;
+
     if (Flags & D3DSPD_IUNKNOWN)
         user_assert(SizeOfData == sizeof(IUnknown *), D3DERR_INVALIDCALL);
 
@@ -213,6 +217,8 @@
     DBG("This=%p GUID=%s pData=%p pSizeOfData=%p\n",
         This, GUID_sprintf(guid_str, refguid), pData, pSizeOfData);
 
+    (void)guid_str;
+
     header = util_hash_table_get(This->pdata, refguid);
     if (!header) { return D3DERR_NOTFOUND; }
 
@@ -243,6 +249,8 @@
 
     DBG("This=%p GUID=%s\n", This, GUID_sprintf(guid_str, refguid));
 
+    (void)guid_str;
+
     header = util_hash_table_get(This->pdata, refguid);
     if (!header)
         return D3DERR_NOTFOUND;
diff --git a/src/gallium/state_trackers/nine/surface9.c b/src/gallium/state_trackers/nine/surface9.c
index a172a10..54d07dc 100644
--- a/src/gallium/state_trackers/nine/surface9.c
+++ b/src/gallium/state_trackers/nine/surface9.c
@@ -285,6 +285,8 @@
     DBG("This=%p riid=%p id=%s ppContainer=%p\n",
         This, riid, riid ? GUID_sprintf(guid_str, riid) : "", ppContainer);
 
+    (void)guid_str;
+
     if (!ppContainer) return E_POINTER;
 
     /* Return device for OffscreenPlainSurface, DepthStencilSurface and RenderTarget */
diff --git a/src/gallium/state_trackers/nine/volume9.c b/src/gallium/state_trackers/nine/volume9.c
index a31dc0a..33f7cf3 100644
--- a/src/gallium/state_trackers/nine/volume9.c
+++ b/src/gallium/state_trackers/nine/volume9.c
@@ -166,6 +166,8 @@
     DBG("This=%p riid=%p id=%s ppContainer=%p\n",
         This, riid, riid ? GUID_sprintf(guid_str, riid) : "", ppContainer);
 
+    (void)guid_str;
+
     if (!NineUnknown(This)->container)
         return E_NOINTERFACE;
     return NineUnknown_QueryInterface(NineUnknown(This)->container, riid, ppContainer);
