Index: sage/interfaces/singular.py
===================================================================
--- sage/interfaces/singular.py	(revision 6690)
+++ sage/interfaces/singular.py	(revision 6706)
@@ -381,16 +381,5 @@
         Clear the variable named var.
         """
-        try:
-            self.eval('kill %s;'%var)
-        except RuntimeError:
-            pass
-        
-
-        # Reusing var names causes problems, because of strong typing.
-        # If you run the multi_polynomial_ideal.py doctest you'll see this.
-        ##self._available_vars.append(var)
-
-        #Could be an alternative to killing, if that is a problem...
-        #self.eval('def %s=0;'%var)
+        self.eval('if(defined(%s)>0){kill %s;}'%(var,var))
 
     def _create(self, value, type='def'):
@@ -609,8 +598,9 @@
             3*a
         """
-        try:
-            self.eval('kill %s'%(str(vars)[1:-1]))
-        except (RuntimeError, TypeError):  # error if variable is not already defined.
-            pass
+        if len(vars) > 2:
+            s = '; '.join(['if(defined(%s)>0){kill %s;};'%(x,x)
+                           for x in vars[1:-1].split(',')])
+            self.eval(s);
+
         if check and isinstance(char, (int, long, sage.rings.integer.Integer)):
             if char != 0:
