diff --git a/main.go b/main.go
index 5e8c050ea08ce1b3a4b063e9865ed7ed9cd08f2f..ac7abcf1e351dbb607cabad7c9d6e1bcbb4ba8f9 100644
--- a/main.go
+++ b/main.go
@@ -87,7 +87,7 @@ func main() {
 func errorHandler(errorFilesPath string) func(http.ResponseWriter, *http.Request) {
 	return func(w http.ResponseWriter, r *http.Request) {
 		start := time.Now()
-		ext := "html"
+		exts := []string{"html", "htm"}
 
 		if os.Getenv("DEBUG") != "" {
 			w.Header().Set(FormatHeader, r.Header.Get(FormatHeader))
@@ -108,11 +108,11 @@ func errorHandler(errorFilesPath string) func(http.ResponseWriter, *http.Request
 
 		cext, err := mime.ExtensionsByType(format)
 		if err != nil {
-			log.Printf("unexpected error reading media type extension: %v. Using %v", err, ext)
+			log.Printf("unexpected error reading media type extension: %v. Using %v", err, strings.Join(exts, ", "))
 		} else if len(cext) == 0 {
-			log.Printf("couldn't get media type extension. Using %v", ext)
+			log.Printf("couldn't get media type extension. Using %v", strings.Join(exts, ", "))
 		} else {
-			ext = cext[0]
+			exts = cext
 		}
 		w.Header().Set(ContentType, format)
 
@@ -129,20 +129,26 @@ func errorHandler(errorFilesPath string) func(http.ResponseWriter, *http.Request
 		}
 		w.WriteHeader(code)
 
-		if !strings.HasPrefix(ext, ".") {
-			ext = "." + ext
-		}
-		file := fmt.Sprintf("%v/%v%v", errorFilesPath, code, ext)
-		if _, err := os.Stat(file); os.IsNotExist(err) {
-			log.Printf("unexpected error opening file: %v", err)
+		var file string
+		for _, ext := range exts {
+			filePath := fmt.Sprintf("%v/%v%v", errorFilesPath, code, ext)
+			if _, err := os.Stat(file); os.IsExist(err) {
+				file = filePath
+				break
+			}
 			scode := strconv.Itoa(code)
-			file = fmt.Sprintf("%v/%cxx%v", errorFilesPath, scode[0], ext)
-			if _, err := os.Stat(file); os.IsNotExist(err) {
-				log.Printf("unexpected error opening file: %v", err)
-				http.NotFound(w, r)
-				return
+			filePath = fmt.Sprintf("%v/%cxx%v", errorFilesPath, scode[0], ext)
+			if _, err := os.Stat(file); os.IsExist(err) {
+				file = filePath
+				break
 			}
 		}
+		if file == "" {
+			log.Printf("unexpected error opening file: %v", err)
+			http.NotFound(w, r)
+			return
+		}
+
 		tmpl, err := template.New(path.Base(file)).ParseFiles(file)
 		if err != nil {
 			log.Printf("unexpected error executing template: %v", err)