Index: subversion/libsvn_wc/adm_ops.c
===================================================================
--- subversion/libsvn_wc/adm_ops.c	(revision 16087)
+++ subversion/libsvn_wc/adm_ops.c	(working copy)
@@ -1297,21 +1297,7 @@
       
       /* Determine if any of the propchanges are the "magic" ones that
          might require changing the working file. */
-      {
-        int i;
-        for (i = 0; i < propchanges->nelts; i++)
-          {
-            svn_prop_t *propchange
-              = &APR_ARRAY_IDX (propchanges, i, svn_prop_t);
-            
-            if ((! strcmp (propchange->name, SVN_PROP_EXECUTABLE))
-                || (! strcmp (propchange->name, SVN_PROP_KEYWORDS))
-                || (! strcmp (propchange->name, SVN_PROP_EOL_STYLE))
-                || (! strcmp (propchange->name, SVN_PROP_SPECIAL))
-                || (! strcmp (propchange->name, SVN_PROP_NEEDS_LOCK)))
-              magic_props_changed = TRUE;
-          }
-      }
+      magic_props_changed = svn_wc__is_magic_props_changed(propchanges);
   
       SVN_ERR (svn_wc__prop_path (&thing, fullpath, adm_access, FALSE, pool)); 
       SVN_ERR (svn_wc__prop_base_path (&base_thing, fullpath, adm_access, FALSE,
Index: subversion/libsvn_wc/props.c
===================================================================
--- subversion/libsvn_wc/props.c	(revision 16087)
+++ subversion/libsvn_wc/props.c	(working copy)
@@ -2109,3 +2109,24 @@
     }
   return SVN_NO_ERROR;
 }
+
+
+svn_boolean_t
+svn_wc__is_magic_props_changed (apr_array_header_t *propchanges)
+{
+  int i;
+
+  for (i = 0; i < propchanges->nelts; i++)
+    {
+      svn_prop_t *propchange
+        = &APR_ARRAY_IDX (propchanges, i, svn_prop_t);
+      
+      if ((! strcmp (propchange->name, SVN_PROP_EXECUTABLE))
+          || (! strcmp (propchange->name, SVN_PROP_KEYWORDS))
+          || (! strcmp (propchange->name, SVN_PROP_EOL_STYLE))
+          || (! strcmp (propchange->name, SVN_PROP_SPECIAL))
+          || (! strcmp (propchange->name, SVN_PROP_NEEDS_LOCK)))
+        return TRUE;
+    }
+  return FALSE;
+}
Index: subversion/libsvn_wc/props.h
===================================================================
--- subversion/libsvn_wc/props.h	(revision 16087)
+++ subversion/libsvn_wc/props.h	(working copy)
@@ -140,6 +140,11 @@
                                      svn_boolean_t recurse,
                                      apr_pool_t *pool);
 
+/* Returns TRUE if any of the PROPCHANGES are the "magic" ones that
+   might require changing the working file. At present time magic props are
+   SVN_PROP_EXECUTABLE, SVN_PROP_KEYWORDS, SVN_PROP_EOL_STYLE,
+   SVN_PROP_SPECIAL, SVN_PROP_NEEDS_LOCK. */
+svn_boolean_t svn_wc__is_magic_props_changed (apr_array_header_t *propchanges);
 
 #ifdef __cplusplus
 }
Index: subversion/libsvn_wc/update_editor.c
===================================================================
--- subversion/libsvn_wc/update_editor.c	(revision 16087)
+++ subversion/libsvn_wc/update_editor.c	(working copy)
@@ -2007,17 +2007,7 @@
       
       /* Determine if any of the propchanges are the "magic" ones that
          might require changing the working file. */
-      for (i = 0; i < propchanges->nelts; i++)
-        {
-          svn_prop_t *propchange = &APR_ARRAY_IDX (propchanges, i, svn_prop_t);
-            
-          if ((! strcmp (propchange->name, SVN_PROP_EXECUTABLE))
-              || (! strcmp (propchange->name, SVN_PROP_NEEDS_LOCK))
-              || (! strcmp (propchange->name, SVN_PROP_KEYWORDS))
-              || (! strcmp (propchange->name, SVN_PROP_EOL_STYLE))
-              || (! strcmp (propchange->name, SVN_PROP_SPECIAL)))
-            magic_props_changed = TRUE;
-        }
+      magic_props_changed = svn_wc__is_magic_props_changed(propchanges);
 
       /* This will merge the old and new props into a new prop db, and
          write <cp> commands to the logfile to install the merged
