--- a/vs1053.c
+++ b/vs1053.c
@@ -157,18 +157,21 @@
           
           VS1053WriteRegister(VS1053_REG_MODE, VS1053_SM_SDINEW | VS1053_SM_SDISHARE);
           
-           
+          
           //Set GPIOs as Output
           VS1053WriteWram(VS1053_ADDR_DDR,0xff);
           VS1053WriteRegister(VS1053_REG_CLOCKF,VS1053_CLOCK_5); // set to  61,44 Mhz Operation	
-          InitSPI(SPI_BAUDRATEPRESCALER_4);		//fast SPI approx 3,68 M/bits (Datasheet allows max. 3,5M/Bits)
-          VS1053WriteRegister( VS1053_REG_STATUS, VS1053ReadRegister(VS1053_REG_STATUS) | VS1063_SS_REFERENCE_SEL );  //1,65 Volt Reference
-  
-          
+          
+	  InitSPI(SPI_BAUDRATEPRESCALER_4);		//fast SPI approx 3,68 M/bits (Datasheet allows max. 3,5M/Bits)
+                   
+	  VS1053WriteRegister( VS1053_REG_STATUS, VS1053ReadRegister(VS1053_REG_STATUS) | VS1063_SS_REFERENCE_SEL );  //1,65 Volt Reference
+  	  
+            
           VS1053WaitDreqTimeout();      
           //while(!VS1053_CHECK_DREQ);   
     
           LoadVS1063Patch();
+	  
  
         } while( dreq_timeout );
         
@@ -239,7 +242,9 @@
 void VS1053WriteRegister(unsigned char reg, unsigned short val) 
 {
 	unsigned char delay;
-                
+	volatile unsigned char dummy;
+	      
+        
         VS1053WaitDreqTimeout();
 	//while(!VS1053_CHECK_DREQ);
 	
@@ -257,6 +262,9 @@
 	while(!(SPI->SR&SPI_FLAG_TXE));
 	SPI->DR = LSB(val);
 	while(!(SPI->SR&SPI_FLAG_TXE));
+//HACK-WARNING
+	dummy = SPI->CR1;
+	SPI->CR1 = dummy;
 	while((SPI->SR&SPI_FLAG_BSY));
 
 
@@ -278,7 +286,8 @@
 unsigned short VS1053ReadRegister(unsigned char reg){
 	unsigned char c,d;
 	unsigned short val;
-	
+	volatile unsigned char dummy;
+
 	//while(!VS1053_CHECK_DREQ);
 	VS1053WaitDreqTimeout();
         
@@ -293,22 +302,35 @@
 	SPI->DR = reg;
 	while(!(SPI->SR&SPI_FLAG_RXNE));
 	c = SPI->DR;		//Dummy Read
-	
+//HACK-WARNING
+	dummy = SPI->CR1;
+	SPI->CR1 = dummy;
 	while(!(SPI->SR&SPI_FLAG_TXE));
 	SPI->DR = 0;
 	while(!(SPI->SR&SPI_FLAG_RXNE));
 	c = SPI->DR;	  //Dummy Read
-	
+//HACK-WARNING
+	dummy = SPI->CR1;
+	SPI->CR1 = dummy;
 	while(!(SPI->SR&SPI_FLAG_TXE));
 	SPI->DR = 0;
 	while(!(SPI->SR&SPI_FLAG_RXNE));
 	c = SPI->DR;
 
-
+//HACK-WARNING
+	dummy = SPI->CR1;
+	SPI->CR1 = dummy;
 	while(!(SPI->SR&SPI_FLAG_RXNE));
 	d = SPI->DR;
 	
-	while(!(SPI->SR&SPI_FLAG_TXE));
+//HACK-WARNING
+	dummy = SPI->CR1;
+	SPI->CR1 = dummy;
+	while(!(SPI->SR&SPI_FLAG_TXE));
+//HACK-WARNING
+	dummy = SPI->CR1;
+	SPI->CR1 = dummy;
+
 	while((SPI->SR&SPI_FLAG_BSY));
 	VS1053_SPI_CS_OFF;
 	
@@ -320,11 +342,7 @@
 }
 
 
-void UART2_WaitTX()
-{
-//	while(!VS1053_CHECK_XPORTRTS);
-	while(!(UART2->SR & UART2_SR_TXE));
-}
+
 
 void VS1053StreamOgg(void)
 {