--- ./src/java/org/hibernate/cfg/AnnotationBinder.java.orig	2008-06-26 11:36:51.000000000 -0400
+++ ./src/java/org/hibernate/cfg/AnnotationBinder.java	2008-06-26 11:39:41.000000000 -0400
@@ -10,6 +10,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
+import java.util.Collections;
+import java.util.Comparator;
 import javax.persistence.Basic;
 import javax.persistence.Column;
 import javax.persistence.DiscriminatorType;
@@ -943,6 +945,12 @@ public final class AnnotationBinder {
 
 		log.debug( "Processing " + propertyHolder.getEntityName() + " " + accessType + " annotation" );
 		List<XProperty> properties = annotatedClass.getDeclaredProperties( accessType );
+                //order so that property are used int he same order when binding native query
+                Collections.sort( properties, new Comparator<XProperty>() {
+                        public int compare(XProperty property1, XProperty property2) {
+                                return property1.getName().compareTo( property2.getName() );
+                        }
+               } );
 		for ( XProperty p : properties ) {
 			if ( !p.isTypeResolved() && !discoverTypeWithoutReflection( p ) && !mustBeSkipped( p, mappings ) ) {
 				throw new AnnotationException(
--- src/test/org/hibernate/test/annotations/query/Chaos.java.orig	2008-06-26 11:40:18.000000000 -0400
+++ src/test/org/hibernate/test/annotations/query/Chaos.java	2008-06-26 11:41:06.000000000 -0400
@@ -22,8 +22,8 @@ import org.hibernate.annotations.Loader;
  */
 @Entity
 @Table(name="CHAOS")
-@SQLInsert( sql="INSERT INTO CHAOS(size, name, nickname, id) VALUES(?,upper(?),?,?)")
-@SQLUpdate( sql="UPDATE CHAOS SET size = ?, name = upper(?), nickname = ? WHERE id = ?")
+@SQLInsert( sql="INSERT INTO CHAOS(name, nickname, size, id) VALUES(upper(?),?,?,?)")
+@SQLUpdate( sql="UPDATE CHAOS SET name = upper(?), nickname = ?, size = ? WHERE id = ?")
 @SQLDelete( sql="DELETE CHAOS WHERE id = ?")
 @SQLDeleteAll( sql="DELETE CHAOS")
 @Loader(namedQuery = "chaos")
