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 18:01:47.000000000 +0200
+++ postgresql-jdbc-8.2dev-503.src-dq/org/postgresql/core/v3/QueryExecutorImpl.java	2006-10-03 18:42:03.000000000 +0200
@@ -99,6 +99,39 @@
                 }
                 break;
 
+            case '$':
+                if (inDoubleQuotes || inSingleQuotes)
+                    break;
+                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();
+                //System.out.println("next tag = (" + nexttag + ")");
+                //System.out.println("begin =\n(" + query.substring(i-10, pos+10) + ")");
+                int nextpos = query.indexOf(nexttag, pos+1);
+                if (nextpos < 0)
+                    break;
+                i = nextpos + tag.length() + 2;
+                //System.out.println("end =\n(" + query.substring(i-10, i+tag.length()+10) + ")");
+                break;
