diff --git a/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java b/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java
index 2d1c266..0d70f12 100644
--- a/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java
+++ b/empire-db/src/main/java/org/apache/empire/db/DBCmdParam.java
@@ -56,12 +56,14 @@
      * @return the (possibly wrapped) value
      */
     protected Object getCmdParamValue(Object value)
-    {        
+    {
+        // check null
+        if (value == null)
+            return null;
+        // check type
         switch (type)
         {
             case BLOB:
-                if (value == null)
-                    return null;
                 if (value instanceof DBBlobData)
                     return value;
                 if (value instanceof byte[])
@@ -69,8 +71,6 @@
                 // create a blob data
                 return new DBBlobData(value.toString());
             case CLOB:
-                if (value == null)
-                    return null;
                 if (value instanceof DBClobData)
                     return value;
                 // create a clob data
@@ -78,6 +78,13 @@
             case BOOL:
             	return ObjectUtils.getBoolean(value);
             default:
+                // check for enum
+                if (value.getClass().isEnum())
+                {   // convert enum
+                    Enum<?> enumValue = ((Enum<?>)value);
+                    return (type.isNumeric() ? enumValue.ordinal() : enumValue.name());
+                }
+                // use as is
                 return value;
         }
     }
