This patch does two things: 1. It prevents org-publish from perpetually republishing files containing includes. Currently, if an included file changes, it is published, as is the file that includes it. However, until changes are made in the file that includes it (which may be never) its modification time remain older than that of the included file, so it will be republished every time org-publish is called, even if neither file has changed. - Note: This patch fixes this behavior by updating the modification time of the file that contains the includes. If this is deemed too destructive/meddlesome, we could consider alternate behaviors, such as setting the cached time with a simple float-time. Let me know what would be best. 2. It optimizes checking for included files. Currently, org-publish-cache-file-needs-publishing visits every file in a project to check for includes. On my underpowered box, this takes a long time (over a minute) on a project with 1000+ files, thus defeating the purpose of the cache. This patch causes org-publish to store information about included files in the cache itself: a. If a file has changed it updates information about the files it includes and stores it in the cache. b. If a file has not changed, it checks the cache for included files and sees if any of those files have been updated (thus preventing the need to check every file in the project for includes) Best, Matt