diff --git a/Modules/audioop.c b/Modules/audioop.c
index 792c4ae..f8810d3 100644
--- a/Modules/audioop.c
+++ b/Modules/audioop.c
@@ -731,11 +731,6 @@
 	return 0;
     }
     
-    str = newsizedstringobject(NULL, len/size);
-    if ( str == 0 )
-      return 0;
-    ncp = (signed char *)getstringvalue(str);
-
     /* Decode state, should have (value, step) */
     if ( state == None ) {
 	/* First time, it seems. Set defaults */
@@ -744,6 +739,11 @@
     } else if ( !getargs(state, "(ii)", &valprev, &step) )
       return 0;
 
+    str = newsizedstringobject(NULL, len/size);
+    if ( str == 0 )
+      return 0;
+    ncp = (signed char *)getstringvalue(str);
+
     for ( i=0; i < len; i += size ) {
 	if ( size == 1 )      val = ((int)*CHARP(cp, i)) << 8;
 	else if ( size == 2 ) val = (int)*SHORTP(cp, i);
@@ -861,11 +861,6 @@
 	return 0;
     }
     
-    str = newsizedstringobject(NULL, len/(size*2));
-    if ( str == 0 )
-      return 0;
-    ncp = (signed char *)getstringvalue(str);
-
     /* Decode state, should have (value, step) */
     if ( state == None ) {
 	/* First time, it seems. Set defaults */
@@ -875,6 +870,11 @@
     } else if ( !getargs(state, "(ii)", &valpred, &index) )
       return 0;
 
+    str = newsizedstringobject(NULL, len/(size*2));
+    if ( str == 0 )
+      return 0;
+    ncp = (signed char *)getstringvalue(str);
+
     step = stepsizeTable[index];
     bufferstep = 1;
 
