   }
 
   private func reloadKeyboard(in view: WKWebView) {
+    let codeURL = Storage.active.baseDir.appendingPathComponent(kmwFullFileName)
     if #available(iOS 9.0, *) {
-      let codeURL = Storage.active.baseDir.appendingPathComponent(kmwFullFileName)
       view.loadFileURL(codeURL, allowingReadAccessTo: codeURL.deletingLastPathComponent())
     } else {
       // WKWebView in iOS < 9 is missing loadFileURL().
-      // The files need to be copied to a temporary directory and loaded from there.
-      if copyKeymanFilesToTemp() {
-        let codeURL = URL(fileURLWithPath: NSTemporaryDirectory())
-          .appendingPathComponent("keyman")
-          .appendingPathComponent(kmwFullFileName)
-        view.load(URLRequest(url: codeURL, cachePolicy: .reloadIgnoringCacheData, timeoutInterval: 60.0))
-      }
+      view.load(URLRequest(url: codeURL, cachePolicy: .reloadIgnoringCacheData, timeoutInterval: 60.0))
     }
   }
 

    }

    kmLog("Setting language: \(kb.languageID)_\(kb.id)", checkDebugPrinting: true)
    if usingTempFolder {
      if !copyKeymanFilesToTemp() {
        return false
      }
    }

    // FIXME: kb.version is not respected. Ideally we should be able to trust that the version number in UserDefaults
    // is-to-date but it is sometimes not updated.

    return true
  }

  // FIXME: The check for empty filename, etc was removed. Check whether that needs to be added back.
  private func keyboardPath(forID keyboardID: String, keyboardVersion: String?) -> URL? {
    var keyboardVersion = keyboardVersion
