diff --git a/org.adempiere.base/src/org/compiere/model/GridTab.java b/org.adempiere.base/src/org/compiere/model/GridTab.java index 8154608491..2e3e0ce8b6 100644 --- a/org.adempiere.base/src/org/compiere/model/GridTab.java +++ b/org.adempiere.base/src/org/compiere/model/GridTab.java @@ -2769,8 +2769,15 @@ public class GridTab implements DataStatusListener, Evaluatee, Serializable if (log.isLoggable(Level.FINE)) log.fine(field.getColumnName() + "=" + value + " - Row=" + m_currentRow); - if (DisplayType.isID(field.getDisplayType()) && value instanceof Integer && ((Integer)value).intValue() < 0) - value = null; + if (value instanceof Integer) { + if (((Integer)value).intValue() < 0 && DisplayType.isID(field.getDisplayType())) { + value = null; + } else if (((Integer)value).intValue() == 0 && field.isLookup()) { + MColumn column = MColumn.get(field.getAD_Column_ID()); + if (! MTable.isZeroIDTable(column.getReferenceTableName())) + value = null; + } + } int col = m_mTable.findColumn(field.getColumnName()); m_mTable.setValueAt(value, m_currentRow, col, false);