Index: /trunk/src/VBox/GuestHost/OpenGL/spu_loader/spuload.c
===================================================================
--- /trunk/src/VBox/GuestHost/OpenGL/spu_loader/spuload.c	(revision 19877)
+++ /trunk/src/VBox/GuestHost/OpenGL/spu_loader/spuload.c	(revision 19878)
@@ -85,4 +85,6 @@
                 crError( "Couldn't load the SPU entry point \"%s\" from SPU \"%s\"!",
                                 SPU_ENTRY_POINT_NAME, name );
+                crSPUUnloadChain(the_spu);
+                return NULL;
         }
 
@@ -95,4 +97,6 @@
         {
                 crError( "I found the SPU \"%s\", but loading it failed!", name );
+                crSPUUnloadChain(the_spu);
+                return NULL;
         }
 #ifdef IN_GUEST
@@ -125,4 +129,5 @@
         if (!the_spu->function_table) {
                 crDebug("Failed to init %s SPU", name);
+                crSPUUnloadChain(the_spu);
                 return NULL;
         }
