--- CreateFrom.java
+++ CreateFrom.java
@@ -1530,14 +1530,19 @@
             BigDecimal LineNetAmt = (new BigDecimal(priceActual)).multiply(new BigDecimal(
                 data[i].id));
             LineNetAmt = LineNetAmt.setScale(curPrecision, BigDecimal.ROUND_HALF_UP);
+            
+            String strTaxRate = CreateFromInvoiceData.selectTaxRate(this, C_Tax_ID);  
+            BigDecimal taxRate = (strTaxRate.equals("") ? new BigDecimal(1) : new BigDecimal(strTaxRate));
+            BigDecimal taxAmt = ((LineNetAmt.multiply(taxRate)).divide(new BigDecimal("100"), 12,
+                    BigDecimal.ROUND_HALF_EVEN)).setScale(curPrecision, BigDecimal.ROUND_HALF_UP);
             try {
               final String strOrg2 = vars.getGlobalVariable("inpadOrgId", "CreateFrom|adOrgId", "");
               CreateFromInvoiceData.insert(conn, this, strSequence, strKey, vars.getClient(),
                   strOrg2, vars.getUser(), data[i].cOrderlineId, data[i].mInoutlineId,
                   data[i].description, data[i].mProductId, data[i].cUomId, data[i].id, priceList,
-                  priceActual, priceLimit, LineNetAmt.toString(), C_Tax_ID, data[i].quantityorder,
-                  data[i].mProductUomId, data[i].mAttributesetinstanceId, priceStd,
-                  data[i].taxbaseamt);
+                  priceActual, priceLimit, LineNetAmt.toString(), C_Tax_ID, taxAmt.toPlainString(),
+                  data[i].quantityorder, data[i].mProductUomId, data[i].mAttributesetinstanceId, priceStd,
+                  LineNetAmt.toString());
             } catch (final ServletException ex) {
               myMessage = Utility.translateError(this, vars, vars.getLanguage(), ex.getMessage());
               releaseRollbackConnection(conn);
--- CreateFrom_Invoice_data.xsql
+++ CreateFrom_Invoice_data.xsql
@@ -33,7 +33,7 @@
         l.C_OrderLine_ID,l.Line, l.ad_org_id, '' as STDPRECISION, 
         '' as M_InOutLine_ID, '' AS PriceActual, '' AS PriceList, '' AS PriceLimit, '' AS Description, '' as PriceStd,
         '' AS QUANTITYORDER, '' AS M_Product_UOM_ID, '' AS M_ATTRIBUTESETINSTANCE_ID, '' AS M_Offer_ID, '' AS PricePrecision,
-        l.taxbaseamt, l.CancelPriceAD
+        l.taxbaseamt, l.CancelPriceAD, '' AS Rate
         FROM C_ORDERLINE l left join M_MATCHPO m on  l.C_OrderLine_ID=m.C_OrderLine_ID
                                                  AND m.C_InvoiceLine_ID IS NOT NULL, 
         C_ORDER o, C_UOM uom,  M_PRODUCT p
@@ -553,7 +553,7 @@
         C_OrderLine_ID,M_InOutLine_ID, Line,Description, M_Product_ID,
         C_UOM_ID,QtyInvoiced, PriceList,
         PriceActual,PriceLimit, LineNetAmt,
-        ChargeAmt,C_Tax_ID, QuantityOrder, M_Product_UOM_ID,
+        ChargeAmt,C_Tax_ID, taxamt, QuantityOrder, M_Product_UOM_ID,
         M_Attributesetinstance_ID, PriceStd, taxbaseamt)
       VALUES 
         (?, ?, ?, ?, 'Y', 
@@ -561,7 +561,7 @@
          ?, ?, (SELECT (COALESCE(Max(Line),0))+10 FROM C_InvoiceLine WHERE C_Invoice_ID=?), ?, ?, 
          ?, TO_NUMBER(?), TO_NUMBER(?), 
          TO_NUMBER(?), TO_NUMBER(?), TO_NUMBER(?), 
-         0, ?, TO_NUMBER(?), ?, 
+         0, ?, TO_NUMBER(?), TO_NUMBER(?), ?, 
          ?, TO_NUMBER(?), TO_NUMBER(?))
     </Sql>
     <Parameter name="cInvoicelineId"/>
@@ -582,6 +582,7 @@
     <Parameter name="pricelimit"/>
     <Parameter name="linenetamt"/>
     <Parameter name="cTaxId"/>
+    <Parameter name="taxAmt"/>
     <Parameter name="quantityOrder"/>
     <Parameter name="mProductUomId"/>
     <Parameter name="mAttributesetinstanceId"/>
@@ -643,4 +644,13 @@
     <Parameter name="pricelist"/>
     <Parameter name="invoiceid"/>
   </SqlMethod>
+  <SqlMethod name="selectTaxRate" type="preparedStatement" return="String" default="">
+    <SqlMethodComment></SqlMethodComment>
+    <Sql>
+      SELECT Rate
+      FROM C_TAX 
+      WHERE C_Tax_ID = ?
+    </Sql>
+    <Parameter name="cTaxId"/>    
+  </SqlMethod>
 </SqlClass>
