diff --git a/app/code/community/OpenTools/Ordernumber/sql/opentools_ordernumber_setup/install-0.1.0.php b/app/code/community/OpenTools/Ordernumber/sql/opentools_ordernumber_setup/install-0.1.0.php
index d464bd41e3ffb0f5893a9cca10e3710d94a46f6d..0530a908995be0034e4e94b50ea6f74de3f72d62 100644
--- a/app/code/community/OpenTools/Ordernumber/sql/opentools_ordernumber_setup/install-0.1.0.php
+++ b/app/code/community/OpenTools/Ordernumber/sql/opentools_ordernumber_setup/install-0.1.0.php
@@ -11,26 +11,34 @@ $installer = $this;
 /**
  * Create table opentools_ordernumber
  */
-$table = $installer->getConnection()
-    ->newTable($installer->getTable('opentools_ordernumber/ordernumber'))
-    ->addColumn('ordernumber_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
-        'unsigned' => true,
-        'identity' => true,
-        'nullable' => false,
-        'primary'  => true,
-    ), 'Ordernumber id')
-    ->addColumn('number_type',   Varien_Db_Ddl_Table::TYPE_TEXT,      63, array('nullable'=> false),                  'Number Type')
-    ->addColumn('number_scope',  Varien_Db_Ddl_Table::TYPE_TEXT,      20, array('nullable'=> true, 'default'=>''),    'Number Scope')
-    ->addColumn('number_format', Varien_Db_Ddl_Table::TYPE_TEXT,     255, array('nullable'=> true, 'default'=>''),    'Number Format')
-    ->addColumn('count',         Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('unsigned'=>true, 'nullable'=>false), 'Counter')
-    ->addIndex($installer->getIdxName(
-            $installer->getTable('opentools_ordernumber/ordernumber'),
-            array('number_type', 'number_scope', 'number_format'),
-            Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
-        ),
-        array('number_type', 'number_scope', 'number_format'),
-        array('type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE)
-    )
-    ->setComment('Ordernumber Counter Table');
-// TODO: drop table if exists!
-$installer->getConnection()->createTable($table);
+$connection = $installer->getConnection();
+$tablename = $installer->getTable('opentools_ordernumber/ordernumber');
+
+if (!$connection->isTableExists($tablename)) {
+
+	$table = $connection
+		->newTable($tablename)
+		->addColumn('ordernumber_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
+			'unsigned' => true,
+			'identity' => true,
+			'nullable' => false,
+			'primary'  => true,
+		), 'Ordernumber id')
+		->addColumn('number_type',   Varien_Db_Ddl_Table::TYPE_TEXT,      63, array('nullable'=> false),                  'Number Type')
+		->addColumn('number_scope',  Varien_Db_Ddl_Table::TYPE_TEXT,      20, array('nullable'=> true, 'default'=>''),    'Number Scope')
+		->addColumn('number_format', Varien_Db_Ddl_Table::TYPE_TEXT,     255, array('nullable'=> true, 'default'=>''),    'Number Format')
+		->addColumn('count',         Varien_Db_Ddl_Table::TYPE_INTEGER, null, array('unsigned'=>true, 'nullable'=>false), 'Counter')
+		->addIndex($installer->getIdxName(
+				$tablename,
+				array('number_type', 'number_scope', 'number_format'),
+				Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE
+			),
+			array('number_type', 'number_scope', 'number_format'),
+			array('type' => Varien_Db_Adapter_Interface::INDEX_TYPE_UNIQUE)
+		)
+		->setComment('Ordernumber Counter Table');
+	// TODO: drop table if exists!
+	$installer->getConnection()->createTable($table);
+} else {
+	// Table already exists, don't do anything (but also don't try to create the table again)
+}