Index: subversion/libsvn_wc/adm_ops.c
===================================================================
--- subversion/libsvn_wc/adm_ops.c	(revision 8873)
+++ subversion/libsvn_wc/adm_ops.c	(working copy)
@@ -1231,13 +1231,16 @@
       SVN_ERR (svn_wc__prop_base_path (&base_thing, fullpath, adm_access, FALSE,
                                        pool));
       SVN_ERR (svn_io_check_path (base_thing, &kind, pool));
-
-      if ((err = svn_io_copy_file (base_thing, thing, FALSE, pool)))
-        return revert_error (err, fullpath, "restoring props", pool);
       
-      SVN_ERR (svn_io_file_affected_time (&tstamp, thing, pool));
-      entry->prop_time = tstamp;
-      *modify_flags |= SVN_WC__ENTRY_MODIFY_PROP_TIME;
+      if (kind == svn_node_file)
+        {
+          if ((err = svn_io_copy_file (base_thing, thing, FALSE, pool)))
+            return revert_error (err, fullpath, "restoring props", pool);
+      
+          SVN_ERR (svn_io_file_affected_time (&tstamp, thing, pool));
+          entry->prop_time = tstamp;
+          *modify_flags |= SVN_WC__ENTRY_MODIFY_PROP_TIME;
+        }
     }
 
   if (entry->kind == svn_node_file)
Index: subversion/tests/clients/cmdline/schedule_tests.py
===================================================================
--- subversion/tests/clients/cmdline/schedule_tests.py	(revision 8873)
+++ subversion/tests/clients/cmdline/schedule_tests.py	(working copy)
@@ -599,6 +599,33 @@
   expected_status.tweak('', 'iota', wc_rev=2)
   svntest.actions.run_and_verify_status(wc_dir, expected_status)
 
+#----------------------------------------------------------------------
+# Regression test for reverting a replaced file with no properties 
+def revert_replaced_file(sbox):
+  "revert a replaced file"
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+ 
+  # Create and schedule file1 for addition
+  file1_path = os.path.join(wc_dir, 'file1')
+  svntest.main.file_append(file1_path, "This is the file 'file1'.")
+  svntest.main.run_svn(None, 'add', file1_path)
+  
+  # check in this as rev1
+  svntest.main.run_svn(None, 'ci', '-m','log message', wc_dir)
+
+  # delete file1
+  svntest.main.run_svn(None, 'rm', file1_path)
+
+  # recreate and add the file
+  svntest.main.file_append(file1_path, "This is the file 'file1' version 2.")
+  svntest.main.run_svn(None, 'add', file1_path)
+ 
+  # revert file
+  svntest.actions.run_and_verify_svn(None, ["Reverted '" + file1_path + "'\n"],
+                                     None, 'revert', file1_path)
+
 ########################################################################
 # Run the tests
 
@@ -627,6 +654,7 @@
               delete_missing,
               revert_inside_newly_added_dir,
               status_add_deleted_directory,
+              revert_replaced_file,
              ]
 
 if __name__ == '__main__':


