Index: subversion/libsvn_client/cat.c
===================================================================
--- subversion/libsvn_client/cat.c	(revision 14704)
+++ subversion/libsvn_client/cat.c	(working copy)
@@ -22,6 +22,8 @@
 
 /*** Includes. ***/
 
+#include <assert.h>
+
 #include "svn_client.h"
 #include "svn_string.h"
 #include "svn_error.h"
@@ -37,8 +39,10 @@
 
 /*** Code. ***/
 
-/* Helper function to handle copying a potentially translated version of BASE
-   or WORKING revision of a file to an output stream. */
+/* Helper function to handle copying a potentially translated version of
+   local file PATH to OUTPUT.  REVISION must be one of the following: BASE,
+   COMMITTED, WORKING, or UNSPECIFIED.  If the revision is UNSPECIFIED, it
+   will default to BASE.  Uses POOL for temporary allocations. */
 static svn_error_t *
 cat_local_file (const char *path,
                 svn_stream_t *output,
@@ -58,6 +62,11 @@
   apr_file_t *input_file;
   svn_stream_t *input;
 
+  assert (revision->kind == svn_opt_revision_working ||
+          revision->kind == svn_opt_revision_base ||
+          revision->kind == svn_opt_revision_committed ||
+          revision->kind == svn_opt_revision_unspecified);
+
   SVN_ERR (svn_wc_entry (&entry, path, adm_access, FALSE, pool));
 
   if (! entry)
@@ -165,9 +174,11 @@
   if (! svn_path_is_url (path_or_url)
       && (peg_revision->kind == svn_opt_revision_base
           || peg_revision->kind == svn_opt_revision_committed
+          || peg_revision->kind == svn_opt_revision_working
           || peg_revision->kind == svn_opt_revision_unspecified)
       && (revision->kind == svn_opt_revision_base
           || revision->kind == svn_opt_revision_committed
+          || revision->kind == svn_opt_revision_working
           || revision->kind == svn_opt_revision_unspecified))
     {
       svn_wc_adm_access_t *adm_access;
