Index: subversion/libsvn_client/commit.c
===================================================================
--- subversion/libsvn_client/commit.c	(revision 14873)
+++ subversion/libsvn_client/commit.c	(working copy)
@@ -197,6 +197,11 @@
   apr_hash_index_t *hi;
   svn_node_kind_t kind;
   svn_boolean_t is_special;
+  apr_array_header_t* wc_props;
+  svn_error_t *err;
+  const char *abs_path, *parent_dir;
+  svn_boolean_t is_wc;
+  int wc_format;
 
   SVN_ERR (svn_path_check_valid (path, pool));
 
@@ -238,6 +243,57 @@
         }
     }
 
+  /* check if the parent directory is a wc directory */ 
+  SVN_ERR (svn_path_get_absolute (&abs_path, path, pool));
+  parent_dir = svn_path_dirname (abs_path, pool);
+  SVN_ERR (svn_wc_check_wc (parent_dir, &wc_format, pool));
+  is_wc = wc_format ? TRUE : FALSE;
+  
+  if (is_wc)
+    {
+      svn_client_proplist_item_t *item;
+      const void *key;
+      void *val;
+      const char *pname;
+      svn_string_t *pval;
+      svn_opt_revision_t peg_revision;
+      svn_opt_revision_t revision;
+      svn_boolean_t unver_file;
+
+      peg_revision.kind = svn_opt_revision_unspecified;
+      revision.kind = svn_opt_revision_unspecified;
+
+      err = svn_client_proplist2 (&wc_props, path, 
+                                  &peg_revision,
+                                  &revision,
+                                  FALSE, ctx, pool);
+      if (err)
+        {
+          if (err->apr_err == SVN_ERR_UNVERSIONED_RESOURCE)
+            {
+              unver_file = TRUE;
+              svn_error_clear (err);
+            }
+        }
+      else
+        unver_file = FALSE;
+ 
+      if ((!unver_file) &&  (wc_props->nelts))
+        {
+          item = ((svn_client_proplist_item_t **)wc_props->elts)[0];
+
+          for (hi = apr_hash_first (pool, item->prop_hash); hi; 
+                                    hi = apr_hash_next (hi))
+            {
+              apr_hash_this (hi, &key, NULL, &val);
+              pname = key;
+              pval = val;
+              SVN_ERR (editor->change_file_prop (file_baton, pname, pval, 
+                                                 pool));
+            }
+        }
+    }
+
   if (ctx->notify_func2)
     {
       svn_wc_notify_t *notify
@@ -305,6 +361,8 @@
   apr_hash_t *dirents;
   apr_hash_index_t *hi;
   apr_array_header_t *ignores;
+  svn_boolean_t is_wc;
+  int wc_format;
 
   SVN_ERR (svn_path_check_valid (path, pool));
 
@@ -367,6 +425,10 @@
       if (svn_cstring_match_glob_list (filename, ignores))
         continue;
 
+      /* Check if the path is a working copy directory */
+      SVN_ERR (svn_wc_check_wc (this_path, &wc_format, subpool));
+      is_wc = wc_format ? TRUE : FALSE;
+
       /* We only import subdirectories when we're doing a regular
          recursive import. */
       if ((*filetype == svn_node_dir) && (! nonrecursive))
@@ -379,6 +441,40 @@
                                           NULL, SVN_INVALID_REVNUM, subpool,
                                           &this_dir_baton));
 
+          if (is_wc)
+            {
+              svn_client_proplist_item_t *item;
+              const char *pname;
+              svn_string_t *pval;
+              svn_opt_revision_t peg_revision;
+              svn_opt_revision_t revision;
+              svn_error_t *err;
+              apr_array_header_t* wc_props;
+              apr_hash_index_t *hi2;
+
+              peg_revision.kind = svn_opt_revision_unspecified;
+              revision.kind = svn_opt_revision_unspecified;
+
+              err = svn_client_proplist2 (&wc_props, this_path,
+                                          &peg_revision,
+                                          &revision,
+                                          FALSE, ctx, subpool);
+              if (wc_props->nelts)
+              {
+                item = ((svn_client_proplist_item_t **)wc_props->elts)[0];
+
+                for (hi2 = apr_hash_first (subpool, item->prop_hash); hi2;
+                                           hi2 = apr_hash_next (hi2))
+                  {
+                    apr_hash_this (hi2, &key, NULL, &val);
+                    pname = key;
+                    pval = val;
+                    SVN_ERR (editor->change_dir_prop (this_dir_baton, pname, 
+                                                      pval, subpool));        
+                  }
+              }
+            }
+
           /* Remember that the repository was modified */
           import_ctx->repos_changed = TRUE;
 
Index: subversion/tests/clients/cmdline/import_tests.py
===================================================================
--- subversion/tests/clients/cmdline/import_tests.py	(revision 14873)
+++ subversion/tests/clients/cmdline/import_tests.py	(working copy)
@@ -216,15 +216,74 @@
                                      empty_dir) 
 
 #----------------------------------------------------------------------
+def import_wc(sbox):
+  "import from a wc"
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+ 
+  import_src_path = wc_dir + "/A/B/E/"
+  beta_path = import_src_path + "beta"
+  url = svntest.main.current_repo_url + "/dirA"
+
+  # set eol-style prop on file 'beta' 
+  svntest.actions.run_and_verify_svn(None, None, None, "propset",
+                                     'svn:eol-style', 'native',
+                                     beta_path)
+  expected_output = svntest.wc.State(wc_dir, {
+    'A/B/E/beta' : Item(verb='Sending'),
+    })
+  svntest.actions.run_and_verify_commit (wc_dir,
+                                         expected_output,
+                                         None,
+                                         None,
+                                         None, None, None, None,
+                                         beta_path)
+                                     
+  # import a portion of the greek tree wc
+  svntest.actions.run_and_verify_svn(None, None, None, 'import',
+                                     '--username', svntest.main.wc_author,
+                                     '--password', svntest.main.wc_passwd,
+                                     '-m', 'Log message for new import',
+                                     import_src_path, url)
+
+  expected_disk = svntest.main.greek_state.copy()
+  expected_disk.add({
+    'dirA' : Item(''),
+    'dirA/alpha' : Item("This is the file 'alpha'."),
+    'dirA/beta'  : Item("This is the file 'beta'.", props={'svn:eol-style' :
+                                                           'native'}),
+    })  
+  expected_disk.tweak( 'A/B/E/beta', props={'svn:eol-style' : 'native'})
+
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 3)
+  expected_status.add({
+    'dirA'       : Item(status='  ', wc_rev=3),
+    'dirA/alpha' : Item(status='  ', wc_rev=3),
+    'dirA/beta'  : Item(status='  ', wc_rev=3),
+    })
+
+  expected_output = svntest.wc.State(wc_dir, {
+    'dirA'       : Item(status='A '),
+    'dirA/alpha' : Item(status='A '),
+    'dirA/beta'  : Item(status='A '),
+  })
+  
+  svntest.actions.run_and_verify_update(wc_dir,
+                                        expected_output,
+                                        expected_disk,
+                                        expected_status,
+                                        None, None, None,
+                                        None, None, 1)
+#----------------------------------------------------------------------
 ########################################################################
 # Run the tests
-
-
 # list all tests here, starting with None:
 test_list = [ None,
               Skip(import_executable, (os.name != 'posix')),
               import_ignores,
               import_avoid_empty_revision,
+              import_wc,
              ]
 
 if __name__ == '__main__':


