Index: subversion/libsvn_wc/props.c
===================================================================
--- subversion/libsvn_wc/props.c	(revision 13823)
+++ subversion/libsvn_wc/props.c	(working copy)
@@ -1213,6 +1213,16 @@
      property into it. */
   if (new_value)
     value = svn_string_create_from_buf (new_value, pool);
+  /* value == NULL means the operation is propdel
+   * if so, check if such a property already exists.
+   * If not, return an error - do all this only
+   * if skip_checks is not TRUE
+   */
+  if (skip_checks != TRUE
+       && (value == NULL)
+       && (apr_hash_get (prophash, name, APR_HASH_KEY_STRING)) == NULL)
+    return svn_error_createf (SVN_ERR_BAD_PROP_KIND, NULL,
+                              _("Property '%s' does not exist"), name);
   apr_hash_set (prophash, name, APR_HASH_KEY_STRING, value);
   
   /* Open the propfile for writing. */
Index: subversion/clients/cmdline/propdel-cmd.c
===================================================================
--- subversion/clients/cmdline/propdel-cmd.c	(revision 13823)
+++ subversion/clients/cmdline/propdel-cmd.c	(working copy)
@@ -119,7 +119,7 @@
              opt_state->force doesn't apply to this command anyway. */
           SVN_CL__TRY (svn_client_propset2 (pname_utf8, NULL, target,
                                             opt_state->recursive,
-                                            FALSE, ctx, subpool),
+                                            TRUE, ctx, subpool),
                        success);
           
           if (success && (! opt_state->quiet))
Index: subversion/tests/clients/cmdline/prop_tests.py
===================================================================
--- subversion/tests/clients/cmdline/prop_tests.py	(revision 13823)
+++ subversion/tests/clients/cmdline/prop_tests.py	(working copy)
@@ -1112,6 +1112,24 @@
   verify_output([ prop1 + ' : ' + propval1, prop2 + ' : ' + propval2,
                   'Properties on ' ], output, errput)
 
+#----------------------------------------------------------------------
+def remove_nonexistent_prop(sbox):
+  "remove a property that does not exist"
+
+  # Bootstrap
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  # delete a non-existent property from a file
+  iota_path = os.path.join(wc_dir, 'iota') 
+  exp_stderr = "svn: Property 'thispropdoesntexist' does not exist"
+  output, errput = svntest.main.run_svn(1, 'propdel',
+                                        'thispropdoesntexist',
+                                        iota_path)
+  if(errput[1].find(exp_stderr) == -1):
+    print 'Error: expected stderr: ', exp_stderr
+    print '       actual stderr  : ', errput[1]
+    raise svntest.Failure
   
 ########################################################################
 # Run the tests
@@ -1137,6 +1155,8 @@
               binary_props,
               recursive_base_wc_ops,
               url_props_ops,
+              # Test case for Issue #2220. Use once fixed.
+              Skip(remove_nonexistent_prop, 1),
              ]
 
 if __name__ == '__main__':
