Index: NHibernate/Type/ByteType.cs
===================================================================
--- NHibernate/Type/ByteType.cs	
+++ NHibernate/Type/ByteType.cs	(working copy)
@@ -66,6 +66,7 @@
 
 		public virtual object Next(object current, ISessionImplementor session)
 		{
+            if (current == null) return 1;
 			return (byte) ((byte) current + 1);
 		}
 
Index: NHibernate/Type/Int16Type.cs
===================================================================
--- NHibernate/Type/Int16Type.cs	
+++ NHibernate/Type/Int16Type.cs	(working copy)
@@ -74,6 +74,7 @@
 
 		public virtual object Next(object current, ISessionImplementor session)
 		{
+            if (current == null) return 1;
 			return (Int16)((Int16)current + 1);
 		}
 
Index: NHibernate/Type/Int32Type.cs
===================================================================
--- NHibernate/Type/Int32Type.cs	
+++ NHibernate/Type/Int32Type.cs	(working copy)
@@ -74,6 +74,7 @@
 
 		public virtual object Next(object current, ISessionImplementor session)
 		{
+            if (current == null) return 1;
 			return (Int32)current + 1;
 		}
 
Index: NHibernate/Type/Int64Type.cs
===================================================================
--- NHibernate/Type/Int64Type.cs	
+++ NHibernate/Type/Int64Type.cs	(working copy)
@@ -74,6 +74,7 @@
 
 		public virtual object Next(object current, ISessionImplementor session)
 		{
+            if (current == null) return 1L;
 			return (Int64)current + 1L;
 		}
 
Index: NHibernate/Type/UInt16Type.cs
===================================================================
--- NHibernate/Type/UInt16Type.cs	
+++ NHibernate/Type/UInt16Type.cs	(working copy)
@@ -74,6 +74,7 @@
 
 		public virtual object Next(object current, ISessionImplementor session)
 		{
+            if (current == null) return 1;
 			return (UInt16)current + 1;
 		}
 
Index: NHibernate/Type/UInt32Type.cs
===================================================================
--- NHibernate/Type/UInt32Type.cs	
+++ NHibernate/Type/UInt32Type.cs	(working copy)
@@ -74,6 +74,7 @@
 
 		public virtual object Next(object current, ISessionImplementor session)
 		{
+            if (current == null) return 1;
 			return (UInt32)current + 1;
 		}
 
Index: NHibernate/Type/UInt64Type.cs
===================================================================
--- NHibernate/Type/UInt64Type.cs	
+++ NHibernate/Type/UInt64Type.cs	(working copy)
@@ -73,6 +73,7 @@
 
 		public virtual object Next(object current, ISessionImplementor session)
 		{
+            if (current == null) return 1;
 			return (UInt64)current + 1;
 		}
 
