diff --git a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java
index <HASH>..<HASH> 100644
--- a/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java
+++ b/cli/src/main/java/hudson/cli/FullDuplexHttpStream.java
@@ -115,8 +115,9 @@ public class FullDuplexHttpStream {
     	private void getData() {
             try {
                 String base = createCrumbUrlBase();
-                crumbName = readData(base+"?xpath=/*/crumbRequestField/text()");
-                crumb = readData(base+"?xpath=/*/crumb/text()");
+                String[] pair = readData(base + "?xpath=concat(//crumbRequestField,\":\",//crumb)").split(":", 2);
+                crumbName = pair[0];
+                crumb = pair[1];
                 isValid = true;
                 LOGGER.fine("Crumb data: "+crumbName+"="+crumb);
             } catch (IOException e) {
More efficient to contact crumbIssuer just once and get both name and value.