diff --git a/Examples/ebas_convert.py b/Examples/ebas_convert.py
index 6975c56cee1f9fb6e07aaa1ae29bbf741a5d5a51..518e1486e08072ce94246b4bd0219e2ee9f2b013 100755
--- a/Examples/ebas_convert.py
+++ b/Examples/ebas_convert.py
@@ -9,8 +9,9 @@ import sys
 import logging
 import argparse
 import textwrap
+import re
 from nilutility.argparse_helper import ParseStrings, ParseIntegers
-from ebas.db_fileindex import IndexDb, IndexDbNotOpen, IndexDbExists
+from ebas.db_fileindex import IndexDb, OperationalError
 from ebas.commandline import EbasCommandline
 from ebas.io.file import EbasIOFlagOption
 from ebas.io.file.nasa_ames import EbasNasaAmes, EbasNasaAmesReadError
@@ -177,13 +178,21 @@ def open_indexdb(dbname, logger):
     """
     if dbname:
         try:
-            return IndexDb(dbname)
-        except IndexDbNotOpen:
-            logger.error("can not open index db {}".format(dbname))
-            sys.exit(1)
-        except IndexDbExists:
-            logger.error("index db {} exists already".format(dbname))
-            sys.exit(1)
+            indexdb = IndexDb(dbname)
+        except OperationalError as excpt:
+            if str(excpt) == 'unable to open database file':
+                logger.error("can not open index db {}".format(dbname))
+                sys.exit(1)
+            raise
+        try:
+            indexdb.create_tables()
+        except OperationalError as excpt:
+            if re.match('table .* already exists', str(excpt)):
+                logger.error("index db {} exists already".format(dbname))
+                sys.exit(1)
+            else:
+                raise
+        return indexdb
     return None
 
 def ebas_convert(cmdline):
@@ -201,7 +210,6 @@ def ebas_convert(cmdline):
 
     exitcode = 0 # number of failed files (max 255)
     indexdb = open_indexdb(args.fileindex, logger)
-    print(args.format)
     fileset = EbasIOResultSet(
         outformat=args.format, createfiles=args.createfiles,
         destdir=args.destdir, xmlwrap=args.xmlwrap, flags=args.flags,
diff --git a/Examples/ebas_flatcsv.py b/Examples/ebas_flatcsv.py
index 76f06ec35b0f27d7016fb0524e40c4baf278b5a0..a793a2e0e157bce80c48fffa57d59611551bf1c8 100755
--- a/Examples/ebas_flatcsv.py
+++ b/Examples/ebas_flatcsv.py
@@ -39,7 +39,7 @@ def prepare_csv():
     Returns:
         csv.writer object
     """
-    outfile = open("output.csv", "wb")
+    outfile = open("output.csv", "w")
     csv.register_dialect('ebas', delimiter=',', quotechar='"')
     csvwriter = csv.writer(outfile, dialect='ebas', quoting=csv.QUOTE_MINIMAL)
     header = ["Set type code",
diff --git a/dist/ebas_io-3.4.0-py2-none-any.whl b/dist/ebas_io-3.4.0-py2-none-any.whl
index f682b1eb551ca156c9979699b60fb5238ba240bf..b6bbb05d81e5db5b72fce8dc5919f4049afab915 100644
Binary files a/dist/ebas_io-3.4.0-py2-none-any.whl and b/dist/ebas_io-3.4.0-py2-none-any.whl differ
diff --git a/dist/ebas_io-3.4.0-py3-none-any.whl b/dist/ebas_io-3.4.0-py3-none-any.whl
index 2f1d9b7d42f1341a111053ea0c6a04a48f3d6cf4..22daf65e389784f0101e0acdca8addf1b5593413 100644
Binary files a/dist/ebas_io-3.4.0-py3-none-any.whl and b/dist/ebas_io-3.4.0-py3-none-any.whl differ