diff --git a/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java b/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
index 5d9b899..438281d 100644
--- a/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
+++ b/src/com/google/enterprise/adaptor/sharepoint/SharePointAdaptor.java
@@ -2152,24 +2152,30 @@
           new QName(XMLNS, "People"));
     }
 
+    private static String handleEncoding(String endpoint) {
+      // Handle Unicode. Java does not properly encode the POST path.
+      return URI.create(endpoint).toASCIIString();
+    }
+
     @Override
     public SiteDataSoap newSiteData(String endpoint) throws IOException {
       EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
-          .address(SharePointAdaptor.spUrlToUri(endpoint).toString()).build();
+          .address(handleEncoding(SharePointAdaptor.spUrlToUri(endpoint)
+            .toString())).build();
       return siteDataService.getPort(endpointRef, SiteDataSoap.class);
     }
 
     @Override
     public UserGroupSoap newUserGroup(String endpoint) {
       EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
-          .address(endpoint).build();
+          .address(handleEncoding(endpoint)).build();
       return userGroupService.getPort(endpointRef, UserGroupSoap.class);
     }
     
     @Override
     public AuthenticationSoap newAuthentication(String endpoint) {
       EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
-          .address(endpoint).build();
+          .address(handleEncoding(endpoint)).build();
       return 
           authenticationService.getPort(endpointRef, AuthenticationSoap.class);
     }
@@ -2177,7 +2183,7 @@
     @Override
     public PeopleSoap newPeople(String endpoint) {
       EndpointReference endpointRef = new W3CEndpointReferenceBuilder()
-          .address(endpoint).build();
+          .address(handleEncoding(endpoint)).build();
       return peopleService.getPort(endpointRef, PeopleSoap.class);      
     }
   }
