--- /mnt/station/DEV/NewPKI/openssl-0.9.7c/crypto/asn1/a_int.c	2002-05-31 17:28:30.000000000 +0200
+++ /tmp/a_int.c	2003-12-02 03:32:16.000000000 +0100
@@ -315,9 +315,7 @@
 	{
 	int i,j,k;
 	unsigned char buf[sizeof(long)+1];
-	long d;
 
-	a->type=V_ASN1_INTEGER;
 	if (a->length < (sizeof(long)+1))
 		{
 		if (a->data != NULL)
@@ -330,18 +328,19 @@
 		ASN1err(ASN1_F_ASN1_INTEGER_SET,ERR_R_MALLOC_FAILURE);
 		return(0);
 		}
-	d=v;
-	if (d < 0)
+	if (v < 0)
 		{
-		d= -d;
+		v= -v;
 		a->type=V_ASN1_NEG_INTEGER;
 		}
+	else
+		a->type=V_ASN1_INTEGER;
 
 	for (i=0; i<sizeof(long); i++)
 		{
-		if (d == 0) break;
-		buf[i]=(int)d&0xff;
-		d>>=8;
+		if (v == 0) break;
+		buf[i]=(int)v&0xff;
+		v>>=8;
 		}
 	j=0;
 	for (k=i-1; k >=0; k--)
@@ -352,16 +351,14 @@
 
 long ASN1_INTEGER_get(ASN1_INTEGER *a)
 	{
-	int neg=0,i;
+	int i;
 	long r=0;
 
 	if (a == NULL) return(0L);
-	i=a->type;
-	if (i == V_ASN1_NEG_INTEGER)
-		neg=1;
-	else if (i != V_ASN1_INTEGER)
+	if (a->type != V_ASN1_NEG_INTEGER
+		&& a->type != V_ASN1_INTEGER)
 		return -1;
-	
+
 	if (a->length > sizeof(long))
 		{
 		/* hmm... a bit ugly */
@@ -375,7 +372,8 @@
 		r<<=8;
 		r|=(unsigned char)a->data[i];
 		}
-	if (neg) r= -r;
+	if (a->type == V_ASN1_NEG_INTEGER)
+		r= -r;
 	return(r);
 	}
 
