 	}
 
 	func parsedOPMLItems() -> [RSOPMLItem]? {
+
+		var fileData: Data? = nil
+		let errorPointer: NSErrorPointer = nil
+		let fileCoordinator = NSFileCoordinator(filePresenter: self)
 		
-		let opmlFileURL = URL(fileURLWithPath: filename)
-		var fileData: Data?
-		do {
-			fileData = try Data(contentsOf: opmlFileURL)
-		} catch {
-			// Commented out because it’s not an error on first run.
-			// TODO: make it so we know if it’s first run or not.
-			//NSApplication.shared.presentError(error)
-			return nil
+		fileCoordinator.coordinate(readingItemAt: fileURL, options: [], error: errorPointer, byAccessor: { readURL in
+			do {
+				fileData = try Data(contentsOf: readURL)
+			} catch {
+				// Commented out because it’s not an error on first run.
+				// TODO: make it so we know if it’s first run or not.
+				//NSApplication.shared.presentError(error)
+				os_log(.error, log: log, "OPML read from disk failed: %@.", error.localizedDescription)
+			}
+		})
+		
+		if let error = errorPointer?.pointee {
+			os_log(.error, log: log, "OPML read from disk coordination failed: %@.", error.localizedDescription)
 		}
+
 		guard let opmlData = fileData else {
 			return nil
 		}
 
-		let parserData = ParserData(url: opmlFileURL.absoluteString, data: opmlData)
+		let parserData = ParserData(url: fileURL.absoluteString, data: opmlData)
 		var opmlDocument: RSOPMLDocument?
 
 		do {


	func save() {
		let opmlDocumentString = opmlDocument()
		do {
			let url = URL(fileURLWithPath: filename)
			try opmlDocumentString.write(to: url, atomically: true, encoding: .utf8)
		} catch let error as NSError {
			os_log(.error, log: log, "Save to disk failed: %@.", error.localizedDescription)
		}
	}
	

	}
	
	init(filename: String, account: Account) {
		self.fileURL = URL(fileURLWithPath: filename)
		self.account = account
		operationQueue = OperationQueue()
		operationQueue.maxConcurrentOperationCount = 1
