Other Vista patches
* http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21100
* http://lists.samba.org/archive/samba-technical/2007-February/052008.html

diff -ur samba-3.0.24/source/rpc_server/srv_spoolss.c samba-3.0.24.osstech/source/rpc_server/srv_spoolss.c
--- samba-3.0.24/source/rpc_server/srv_spoolss.c	Thu Apr 20 11:29:27 2006
+++ samba-3.0.24.osstech/source/rpc_server/srv_spoolss.c	Tue Mar 13 18:21:21 2007
@@ -910,6 +910,11 @@
 	ZERO_STRUCT(r_u);
 	
 	if(!spoolss_io_q_addprinterdriver("", &q_u, data, 0)) {
+		if (q_u.level != 3 && q_u.level != 6) {
+			DEBUG(3,("api_spoolss_addprinterdriver: unknown SPOOL_Q_ADDPRINTERDRIVER level %u.\n", (unsigned int)q_u.level));
+			setup_fault_pdu(p, NT_STATUS(DCERPC_FAULT_INVALID_TAG));
+			return True;
+		}
 		DEBUG(0,("spoolss_io_q_addprinterdriver: unable to unmarshall SPOOL_Q_ADDPRINTERDRIVER.\n"));
 		return False;
 	}
Index: smbd/negprot.c
===================================================================
--- samba-3.0.25svn/source/smbd/negprot.c	(revision 21552)
+++ samba-3.0.25svn/source/smbd/negprot.c	(working copy)
@@ -259,7 +259,9 @@ static int reply_nt1(char *inbuf, char *
 	if ( (SVAL(inbuf, smb_flg2) & FLAGS2_EXTENDED_SECURITY) &&
 		((SVAL(inbuf, smb_flg2) & FLAGS2_UNKNOWN_BIT4) == 0) ) 
 	{
-		set_remote_arch( RA_VISTA );		
+		if (get_remote_arch() != RA_SAMBA) {;
+			set_remote_arch( RA_VISTA );
+		}
 	}
 
 	/* do spnego in user level security if the client
