diff --git a/src/object.c b/src/object.c
index 3cf37f5a1c82c9e0cc16b276a0df7b37688f6d8c..38be7a5ab74769af0e4696adfc887cd3cd134b38 100644
--- a/src/object.c
+++ b/src/object.c
@@ -831,8 +831,12 @@ PMOD_EXPORT void destruct_object (struct object *o, enum object_destruct_reason
     else fputs(", is destructed\n", stderr);
   }
 #endif
-  if( !(p = o->prog) )
+  if( !(p = o->prog) ) {
+#ifdef PIKE_DEBUG
+      UNSET_ONERROR(uwp);
+#endif
       return;
+  }
   add_ref( o );
   if( object_has_destroy( o ) )
   {