Index: C:/Development/Subversion-1.4.6/subversion/libsvn_client/client.h
===================================================================
--- C:/Development/Subversion-1.4.6/subversion/libsvn_client/client.h	(revision 28967)
+++ C:/Development/Subversion-1.4.6/subversion/libsvn_client/client.h	(working copy)
@@ -149,6 +149,7 @@
                             const svn_opt_revision_t *revision,
                             const svn_opt_revision_t *start,
                             const svn_opt_revision_t *end,
+                            const svn_boolean_t must_exist,
                             svn_client_ctx_t *ctx,
                             apr_pool_t *pool);
 
Index: C:/Development/Subversion-1.4.6/subversion/libsvn_client/info.c
===================================================================
--- C:/Development/Subversion-1.4.6/subversion/libsvn_client/info.c	(revision 28967)
+++ C:/Development/Subversion-1.4.6/subversion/libsvn_client/info.c	(working copy)
@@ -290,7 +290,7 @@
                                     ra_session,
                                     url, &peg_rev,
                                     &start_rev, &end_rev,
-                                    ctx, pool);
+                                    TRUE, ctx, pool);
   if (err && 
       ((err->apr_err == SVN_ERR_CLIENT_UNRELATED_RESOURCES) ||
        (err->apr_err == SVN_ERR_FS_NOT_FOUND)))
Index: C:/Development/Subversion-1.4.6/subversion/libsvn_client/ra.c
===================================================================
--- C:/Development/Subversion-1.4.6/subversion/libsvn_client/ra.c	(revision 28967)
+++ C:/Development/Subversion-1.4.6/subversion/libsvn_client/ra.c	(working copy)
@@ -686,6 +686,7 @@
                             const svn_opt_revision_t *revision,
                             const svn_opt_revision_t *start,
                             const svn_opt_revision_t *end,
+                            const svn_boolean_t must_exist,
                             svn_client_ctx_t *ctx,
                             apr_pool_t *pool)
 {
@@ -817,19 +818,27 @@
   else
     return err;
 
+  /* */
+  if (! start_path && end_path && ! must_exist)
+    start_path = apr_pstrdup(pool, end_path);
+
+  if (! end_path && start_path && ! must_exist)
+    end_path = apr_pstrdup(pool, start_path);
+
   /* We'd better have all the paths we were looking for! */
   if (! start_path)
     return svn_error_createf 
       (SVN_ERR_CLIENT_UNRELATED_RESOURCES, NULL,
        _("Unable to find repository location for '%s' in revision %ld"),
        path, start_revnum);
+
   if (! end_path)
     return svn_error_createf 
       (SVN_ERR_CLIENT_UNRELATED_RESOURCES, NULL,
        _("The location for '%s' for revision %ld does not exist in the "
          "repository or refers to an unrelated object"),
        path, end_revnum);
-    
+
   /* Repository paths might be absolute, but we want to treat them as
      relative.
      ### Aren't they always absolute? */
@@ -925,7 +934,7 @@
                                       path_or_url, &peg_revision,
                                       /* search range: */
                                       &start_rev, &dead_end_rev,
-                                      ctx, pool));
+                                      TRUE, ctx, pool));
   good_rev = new_rev;
 
   /* Make the session point to the real URL. */
Index: C:/Development/Subversion-1.4.6/subversion/libsvn_client/diff.c
===================================================================
--- C:/Development/Subversion-1.4.6/subversion/libsvn_client/diff.c	(revision 28967)
+++ C:/Development/Subversion-1.4.6/subversion/libsvn_client/diff.c	(working copy)
@@ -1631,7 +1631,7 @@
                                           params->peg_revision,
                                           params->revision1,
                                           params->revision2,
-                                          ctx, pool));
+                                          FALSE, ctx, pool));
       /* Reparent the session, since drr->url2 might have changed as a result
          the above call. */
       SVN_ERR(svn_ra_reparent(ra_session, drr->url2, pool));
@@ -1642,7 +1642,7 @@
           (&drr->rev2, ra_session, params->revision2,
            (params->path2 == drr->url2) ? NULL : params->path2, pool));
   SVN_ERR(svn_ra_check_path(ra_session, "", drr->rev2, &kind2, pool));
-  if (kind2 == svn_node_none)
+  if (kind2 == svn_node_none && FALSE)
     return svn_error_createf 
       (SVN_ERR_FS_NOT_FOUND, NULL,
        _("'%s' was not found in the repository at revision %ld"),
@@ -1654,7 +1654,7 @@
           (&drr->rev1, ra_session, params->revision1, 
            (params->path1 == drr->url1) ? NULL : params->path1, pool));
   SVN_ERR(svn_ra_check_path(ra_session, "", drr->rev1, &kind1, pool));
-  if (kind1 == svn_node_none)
+  if (kind1 == svn_node_none && FALSE)
     return svn_error_createf 
       (SVN_ERR_FS_NOT_FOUND, NULL,
        _("'%s' was not found in the repository at revision %ld"),
@@ -1739,7 +1739,7 @@
                                           peg_revision,
                                           initial_revision1,
                                           initial_revision2,
-                                          ctx, pool));
+                                          TRUE, ctx, pool));
 
       merge_b->url = URL2;
       path1 = NULL;
@@ -1890,7 +1890,7 @@
                                           peg_revision,
                                           initial_revision1,
                                           initial_revision2,
-                                          merge_b->ctx, pool));
+                                          TRUE, merge_b->ctx, pool));
 
       merge_b->url = URL2;
       merge_b->path = NULL;
@@ -2208,7 +2208,7 @@
                                           path1,
                                           peg_revision,
                                           revision1, &end,
-                                          ctx, pool));
+                                          TRUE, ctx, pool));
 
       if (!reverse)
         {

