Really working copy with simple error recovery and error reporting.