Index: Source/NSApplication.m =================================================================== --- Source/NSApplication.m (revision 35352) +++ Source/NSApplication.m (working copy) @@ -1122,10 +1122,17 @@ { NSEnumerator *en = [files objectEnumerator]; - while ((filePath = (NSString *)[en nextObject]) != nil) + if ([files count] > 1) { - [_listener application: self openFile: filePath]; + [_listener application: self openFiles: files]; } + else + { + while ((filePath = (NSString *)[en nextObject]) != nil) + { + [_listener application: self openFile: filePath]; + } + } } else if ((filePath = [defs stringForKey: @"GSFilePath"]) != nil || (filePath = [defs stringForKey: @"NSOpen"]) != nil) @@ -3555,6 +3562,7 @@ * application:shouldTerminateAfterLastWindowClosed: * application:shouldOpenUntitledFile: * application:openFile: + * application:openFiles: * application:openFileWithoutUI: * application:openTempFile: * application:openUntitledFile: Index: Source/GSServicesManager.m =================================================================== --- Source/GSServicesManager.m (revision 35352) +++ Source/GSServicesManager.m (working copy) @@ -591,6 +591,18 @@ return result; } +- (void) application: (NSApplication*)theApp + openFiles: (NSArray*)files +{ + id del = [NSApp delegate]; + + if ([del respondsToSelector: _cmd]) + { + [del application: theApp openFiles: files]; + } +} + + - (BOOL) application: (NSApplication*)theApp openFileWithoutUI: (NSString*)file {