diff --git a/src-test/model/defaults/BASE_MODEL_WITHOUT_DEFAULT.xml b/src-test/model/defaults/BASE_MODEL_WITHOUT_DEFAULT.xml
new file mode 100644
--- /dev/null
+++ b/src-test/model/defaults/BASE_MODEL_WITHOUT_DEFAULT.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+  <database name="TABLE TEST">
+    <table name="TEST" primaryKey="TEST_ID">
+      <column name="TEST_ID" primaryKey="true" required="true" type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="COL1" primaryKey="false" required="false" type="TIMESTAMP" size="7" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+    </table>
+  </database>
diff --git a/src-test/model/defaults/BASE_MODEL_WITH_DEFAULT.xml b/src-test/model/defaults/BASE_MODEL_WITH_DEFAULT.xml
new file mode 100644
--- /dev/null
+++ b/src-test/model/defaults/BASE_MODEL_WITH_DEFAULT.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0"?>
+  <database name="TABLE TEST">
+    <table name="TEST" primaryKey="TEST_ID">
+      <column name="TEST_ID" primaryKey="true" required="true" type="VARCHAR" size="32" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
+      <column name="COL1" primaryKey="false" required="false" type="TIMESTAMP" size="7" autoIncrement="false">
+        <default><![CDATA[SYSDATE]]></default>
+        <onCreateDefault/>
+      </column>
+    </table>
+  </database>
diff --git a/src-test/src/org/openbravo/dbsm/test/model/data/DefaultValues.java b/src-test/src/org/openbravo/dbsm/test/model/data/DefaultValues.java
new file mode 100644
--- /dev/null
+++ b/src-test/src/org/openbravo/dbsm/test/model/data/DefaultValues.java
@@ -0,0 +1,111 @@
+/*
+ ************************************************************************************
+ * Copyright (C) 2016 Openbravo S.L.U.
+ * Licensed under the Apache Software License version 2.0
+ * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to  in writing,  software  distributed
+ * under the License is distributed  on  an  "AS IS"  BASIS,  WITHOUT  WARRANTIES  OR
+ * CONDITIONS OF ANY KIND, either  express  or  implied.  See  the  License  for  the
+ * specific language governing permissions and limitations under the License.
+ ************************************************************************************
+ */
+
+package org.openbravo.dbsm.test.model.data;
+
+import static org.hamcrest.Matchers.equalTo;
+import static org.junit.Assert.assertThat;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+
+import org.junit.Test;
+import org.openbravo.dbsm.test.base.DbsmTest;
+
+public class DefaultValues extends DbsmTest {
+
+  public DefaultValues(String rdbms, String driver, String url, String sid, String user,
+      String password, String name) throws FileNotFoundException, IOException {
+    super(rdbms, driver, url, sid, user, password, name);
+  }
+
+  @Test
+  public void defaultValueIsDropped() throws SQLException {
+    String tableName = "TEST";
+    String columnName = "COL1";
+    String oldDefaultValue = getRdbms() == Rdbms.PG ? "NOW()" : "SYSDATE";
+    String newDefaultValue = "NULL";
+    resetDB();
+    updateDatabase("defaults/BASE_MODEL_WITH_DEFAULT.xml");
+    assertIsExpectedDefaultValue(tableName, columnName, oldDefaultValue);
+    updateDatabase("defaults/BASE_MODEL_WITHOUT_DEFAULT.xml");
+    assertIsExpectedDefaultValue(tableName, columnName, newDefaultValue);
+  }
+
+  private void assertIsExpectedDefaultValue(String tableName, String columnName,
+      String expectedDefaultValue) {
+    String columnDefaultValue;
+    if (getRdbms() == Rdbms.PG) {
+      columnDefaultValue = getColumnDefaultValueInPostgres(tableName, columnName);
+    } else {
+      columnDefaultValue = getColumnDefaultValueInOracle(tableName, columnName);
+    }
+    assertThat("Expected Default Value Expression", formatColumnDefaultValue(columnDefaultValue),
+        equalTo(expectedDefaultValue));
+  }
+
+  private String formatColumnDefaultValue(String originalValue) {
+    String newValue = originalValue.replace("\n", "");
+    return newValue.toUpperCase();
+  }
+
+  private String getColumnDefaultValueInPostgres(String tableName, String columnName) {
+    String postgresSQLQuery = "SELECT d.adsrc AS default_value " //
+        + "FROM pg_attribute a "
+        + "LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum "
+        + "JOIN pg_class t ON t.oid = a.attrelid "
+        + "WHERE UPPER(t.relname) = UPPER(?) "
+        + "AND UPPER(a.attname) = UPPER(?)";
+    return getColumnDefaultValue(postgresSQLQuery, tableName, columnName);
+  }
+
+  private String getColumnDefaultValueInOracle(String tableName, String columnName) {
+    String oracleSQLQuery = "SELECT data_default AS default_value " //
+        + "FROM user_tab_columns "
+        + "WHERE UPPER(table_name) = UPPER(?) "
+        + "AND UPPER(column_name) = UPPER(?) ";
+    return getColumnDefaultValue(oracleSQLQuery, tableName, columnName);
+  }
+
+  private String getColumnDefaultValue(String sqlQuery, String tableName, String columnName) {
+    Connection cn = null;
+    try {
+      cn = getDataSource().getConnection();
+      PreparedStatement st = null;
+      st = cn.prepareStatement(sqlQuery);
+      st.setString(1, tableName);
+      st.setString(2, columnName);
+      ResultSet rs = st.executeQuery();
+      if (rs.next()) {
+        String result = rs.getString(1);
+        if (result == null) {
+          return "NULL";
+        }
+        return result;
+      }
+    } catch (SQLException e) {
+      e.printStackTrace();
+    } finally {
+      if (cn != null) {
+        try {
+          cn.close();
+        } catch (SQLException e) {
+        }
+      }
+    }
+    return null;
+  }
+}
diff --git a/src/org/apache/ddlutils/model/ValueObject.java b/src/org/apache/ddlutils/model/ValueObject.java
--- a/src/org/apache/ddlutils/model/ValueObject.java
+++ b/src/org/apache/ddlutils/model/ValueObject.java
@@ -114,7 +114,7 @@
    * @return The parsed default value
    */
   public Object getParsedDefaultValue() {
-    if ((_defaultValue != null) && (_defaultValue.length() > 0)) {
+    if (_defaultValue != null && _defaultValue.length() > 0 && !isDefaultFunction()) {
       try {
         switch (_typeCode) {
         case Types.TINYINT:
