diff --git src/business/business-gnome/dialog-invoice.c src/business/business-gnome/dialog-invoice.c
index c5b2b6e..0a952ee 100644
--- src/business/business-gnome/dialog-invoice.c
+++ src/business/business-gnome/dialog-invoice.c
@@ -2881,9 +2881,20 @@ multi_duplicate_invoice_cb (GList *invoice_list, gpointer user_data)
 static void post_one_invoice_cb(gpointer data, gpointer user_data)
 {
     GncInvoice *invoice = data;
+    Account *acct;
+    InvoiceWindow *iw = NULL;
     struct post_invoice_params *post_params = user_data;
-    InvoiceWindow *iw = gnc_ui_invoice_edit(invoice);
-    gnc_invoice_post(iw, post_params);
+    acct = gncInvoiceGetPostedAcc (invoice);
+    
+    if (acct) // Which implies that it is posted.
+    {
+        PINFO("Invoice is already posted!");
+        return; // After popping up a dialog?
+    }
+    else { // Only post if it isn't already posted
+        iw = gnc_ui_invoice_edit(invoice);
+        gnc_invoice_post(iw, post_params);
+    }
 }
