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-04-29 15:30:24.000000000 +0200
+++ postgresql-jdbc-8.2dev-503.src-dq/org/postgresql/core/v3/QueryExecutorImpl.java	2006-10-03 17:41:06.000000000 +0200
@@ -99,6 +99,21 @@
                 }
                 break;
 
+            case '$':
+                int pos = query.indexOf('$', i+1);
+                if (pos < 0)
+                    break;
+                String tag = query.substring(i+1, pos);
+                String nexttag = new StringBuilder(tag).insert(0, "$").append("$").toString();
+                int nextpos = query.indexOf(nexttag, pos+1);
+                if (nextpos < 0)
+                    break;
+                i = nextpos + tag.length() + 2;
+                break;
+
             case '(':
                 if (!inSingleQuotes && !inDoubleQuotes)
                         inParen++;
