Hi Chris, Love your work! From a usefulness perspective you might consider splitting this into two macros. If you make the step that does the contents on a single zip file, passing it arguments targdir and zname, then that macro as a separate macro is usable on a specific zip file within a specific directory on a stand alone basis. The second macro is then just a looper macro that follows that very very common pattern of looping over a number of instances series. It calls the first macro for each new zip file in the loop. One benefit of coding macros this way is they are easier to develop and test. Develop and test the one that does the unit of work, then develop and test the controller macro that calls unit of work macro. The controller can be tested by simply having it emit the arguments it must pass the inner unit of work macro. If it does that successfully, then when you plug in the unit of work macro, they will work in tandem. Regards Mike #EG4EVA