diff --git a/sites/all/modules/simplenews_scheduler/simplenews_scheduler.install b/sites/all/modules/simplenews_scheduler/simplenews_scheduler.install
index 2660a65..8f1a1ef 100644
--- a/sites/all/modules/simplenews_scheduler/simplenews_scheduler.install
+++ b/sites/all/modules/simplenews_scheduler/simplenews_scheduler.install
@@ -2,23 +2,48 @@
 
 function simplenews_scheduler_install() {
 
-  $result[] = db_query("CREATE TABLE {simplenews_scheduler} (
-    sid int(10) NOT NULL auto_increment,
-    snid int(10) NOT NULL default '0',
-    run_count int NOT NULL default 0,
-    run_limit int NOT NULL,
-    last_run int(11) NOT NULL default 0,
-    sched_interval varchar(10),
-    sched_start int(11) NOT NULL,
-    PRIMARY KEY  (sid)
-    ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
-  
-  $result[] = db_query("CREATE TABLE {simplenews_scheduler_editions} (
-    `edition_snid` int(10) NOT NULL default '0',
-    `snid` int(10) NOT NULL default '0',
-    `date_issued` int(11) NOT NULL default '0'
-    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+      $result[] = db_query("CREATE TABLE {simplenews_scheduler} (
+        sid int(10) NOT NULL auto_increment,
+        snid int(10) NOT NULL default '0',
+        run_count int default 0,
+        run_limit int NOT NULL default 0,
+        last_run int(11) NOT NULL default 0,
+        sched_interval varchar(10),
+        sched_start int(11) NOT NULL,
+        PRIMARY KEY  (sid)
+        ) /*!40100 DEFAULT CHARACTER SET utf8 */;");
 
+      $result[] = db_query("CREATE TABLE {simplenews_scheduler_editions} (
+        `edition_snid` int(10) NOT NULL default '0',
+        `snid` int(10) NOT NULL default '0',
+        `date_issued` int(11) NOT NULL default '0'
+        ) ENGINE=MyISAM DEFAULT CHARSET=utf8;");
+
+      break;
+
+    case 'pgsql':
+      $result[] = db_query("CREATE TABLE simplenews_scheduler (
+        sid serial,
+        snid int_unsigned NOT NULL default 0,
+        run_count int_unsigned NOT NULL default 0,
+        run_limit int_unsigned NOT NULL default 0,
+        last_run int_unsigned NOT NULL default 0,
+        sched_interval varchar(10),
+        sched_start int_unsigned NOT NULL default 0,
+        PRIMARY KEY  (sid)
+        )");
+
+      $result[] = db_query("
+        CREATE TABLE {simplenews_scheduler_editions} (
+        edition_snid int_unsigned NOT NULL default 0,
+        snid int_unsigned NOT NULL default 0,
+        date_issued int_unsigned NOT NULL default 0
+        )");
+
+      break;
+  }
   return $result;
 }
 
diff --git a/sites/all/modules/simplenews_scheduler/simplenews_scheduler.module b/sites/all/modules/simplenews_scheduler/simplenews_scheduler.module
index 086af09..f8d5eec 100644
--- a/sites/all/modules/simplenews_scheduler/simplenews_scheduler.module
+++ b/sites/all/modules/simplenews_scheduler/simplenews_scheduler.module
@@ -133,7 +133,7 @@ function simplenews_scheduler_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
   if( is_numeric($node->nid) && ($op == 'insert' || $op == 'update') && $node->type == 'simplenews' ) {
 
     if($_POST['send']) {
-      db_query("DELETE FROM {simplenews_scheduler} WHERE `snid` = %d",$node->nid);  
+      db_query("DELETE FROM {simplenews_scheduler} WHERE snid = %d",$node->nid);  
     }
     
     
@@ -159,13 +159,13 @@ function simplenews_scheduler_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
   }
   
   if($node->type == 'simplenews'  && $op == 'load') {
-    $result = db_query("SELECT * FROM {simplenews_scheduler} WHERE `snid` = %d",$node->nid);
+    $result = db_query("SELECT * FROM {simplenews_scheduler} WHERE snid = %d",$node->nid);
     $row = db_fetch_array($result);
     if($row) {
       $node->simplenews_scheduler = $row;
     } else {
       // maybe this was an edition that has been sent?
-      $result = db_query("SELECT * FROM {simplenews_scheduler_editions} WHERE `edition_snid` = %d",$node->nid);
+      $result = db_query("SELECT * FROM {simplenews_scheduler_editions} WHERE edition_snid = %d",$node->nid);
       $row = db_fetch_array($result);
       if($row) {
         $node->simplenews_scheduler_edition = $row;
@@ -197,7 +197,7 @@ function simplenews_scheduler_cron() {
   foreach($intervals as $interval => $seconds) {
     // check daily items that need to be sent
     $now_time = gmmktime();
-    $result = db_query("SELECT * FROM {simplenews_scheduler} WHERE %d - last_run > %d AND `sched_interval` = '%s'", $now_time, $seconds, $interval);    
+    $result = db_query("SELECT * FROM {simplenews_scheduler} WHERE %d - last_run > %d AND sched_interval = '%s'", $now_time, $seconds, $interval);    
     while ($row = db_fetch_array($result) ) {
       $nid = simplenews_scheduler_new_edition($row["snid"]);
 
@@ -289,7 +289,7 @@ function simplenews_scheduler_node_page( $nid ) {
     $output .= '</p>';
   } else {
     $output .= t('No scheduled newsletters have been sent.');
-    $result = db_fetch_array(db_query('SELECT count(*) as c from {simplenews_scheduler} WHERE `snid` = %d', $nid));
+    $result = db_fetch_array(db_query('SELECT count(*) as c from {simplenews_scheduler} WHERE snid = %d', $nid));
     if($result['c'] == '1') {
       $output .= '<BR>'.t('This is the original newsletter of which all editions are based on.');
     }
