diff -ru postgresql-jdbc-8.2dev-503.src/org/postgresql/core/v3/QueryExecutorImpl.java postgresql-jdbc-8.2dev-503.src-dq/org/postgresql/core/v3/QueryExecutorImpl.java
--- postgresql-jdbc-8.2dev-503.src/org/postgresql/core/v3/QueryExecutorImpl.java	2006-10-03 19:06:00.000000000 +0200
+++ postgresql-jdbc-8.2dev-503.src-dq/org/postgresql/core/v3/QueryExecutorImpl.java	2006-10-03 21:34:34.000000000 +0200
@@ -99,6 +99,21 @@
                 }
                 break;
 
+            case '$':
+                if (inDoubleQuotes || inSingleQuotes)
+                    break;
+                int pos = query.indexOf('$', i+1);
+                if (pos < 0)
+                    break;
+                String tag = query.substring(i, pos+1);
+                if (!tag.matches("^\\$[\\p{L}_][\\p{L}\\d_]*\\$$"))
+                    break;
+                int nextpos = query.indexOf(tag, pos+1);
+                if (nextpos < 0)
+                    break;
+                i = nextpos + tag.length() + 2;
+                break;
+
             case '(':
                 if (!inSingleQuotes && !inDoubleQuotes)
                         inParen++;
