diff --git a/pd/src/m_binbuf.c b/pd/src/m_binbuf.c
index 1f815aa6a19f626cdb88030d1303d3b2202bf2a1..a2830e8600f8196e4bedbb0bef6540138423626b 100644
--- a/pd/src/m_binbuf.c
+++ b/pd/src/m_binbuf.c
@@ -1625,12 +1625,18 @@ int binbuf_match(t_binbuf *inbuf, t_binbuf *searchbuf, int wholeword)
                 if (a2->a_type != a1->a_type)
                     goto nomatch;
             }
-            else if (a1->a_type == A_FLOAT || a1->a_type == A_DOLLAR)
+            else if (a1->a_type == A_FLOAT)
             {
                 if (a2->a_type != a1->a_type || 
                     a1->a_w.w_float != a2->a_w.w_float)
                         goto nomatch;
             }
+            else if (a1->a_type == A_DOLLAR)
+            {
+                if (a2->a_type != a1->a_type || 
+                    a1->a_w.w_index != a2->a_w.w_index)
+                        goto nomatch;
+            }
             else if (a1->a_type == A_SYMBOL || a1->a_type == A_DOLLSYM)
             {
                 if ((a2->a_type != A_SYMBOL && a2->a_type != A_DOLLSYM)