Hi, I recently upgraded to BaseX 6.1. I now receive an error when running a query that run without complications in BaseX 6.0 The offending query has this prolog: declare namespace libx='http://libx.org/xml/libx2'; declare namespace atom='http://www.w3.org/2005/Atom'; declare variable $metadata as xs:anyAtomicType := doc('libx2_meta')/metadata; declare variable $feed as xs:anyAtomicType := doc('libx2_feed')/feed; which results in *declare variable $metadata as xs:anyAtomicType := doc('libx2_meta')/metadata;* ^ javax.xml.xquery.XQQueryException: Stopped at line 3, column 48: [XQST0049] Duplicate definition of $metadata as xs:anyAtomicType. at org.basex.api.xqj.BXQDynamicContext.execute(BXQDynamicContext.java:251) at org.basex.api.xqj.BXQPreparedExpression.executeQuery(BXQPreparedExpression.java:54) at org.libx.libappdatabase.Query.main(Query.java:100) Simply exchanging BaseX61.jar with BaseX6.jar makes this query work as expected. I note that if I switch lines 3 and 4 (so that the 'declare variable $feed' appears first), the error is flagged on this line. The query runs fine using the command-client in both BaseX 6 and 6.1 I'm using org.basex.api.xqj.BXQDataSource, following by prepareExpression, followed by executeQuery. This query has no external variables. Another point of information: out of curiosity, I printed information about the prepared expression after prepareExpression like so: System.out.println("external vars: " + Arrays.asList(pe.getAllExternalVariables())); System.out.println("unbound vars: " + Arrays.asList(pe.getAllUnboundExternalVariables())); this shows 'metadata' and 'feed' as external variables: external vars: [metadata, feed] unbound vars: [] Why are 'metadata' listed as external, even though they are not declared as such? I would appreciate any insight. If the problem is mysterious, I can prepare a self-contained test case or aid in debugging. Thanks. - Godmar [*] http://top.cs.vt.edu/~gback/bx/get_connected_tree.xq