diff -Nur gst-plugins0.8-0.8.11/ext/alsa/gstalsa.c gst-plugins0.8-0.8.11.new/ext/alsa/gstalsa.c
--- gst-plugins0.8-0.8.11/ext/alsa/gstalsa.c	2005-12-30 18:46:47.000000000 +0100
+++ gst-plugins0.8-0.8.11.new/ext/alsa/gstalsa.c	2005-12-30 19:27:13.746002863 +0100
@@ -274,7 +274,7 @@
     case ARG_BUFFERSIZE:
       g_return_if_fail (!GST_FLAG_IS_SET (this, GST_ALSA_RUNNING));
       buffer_size = g_value_get_int (value);
-      this->desired_period_count = buffer_size / this->period_size;
+      this->desired_period_count = buffer_size / this->desired_period_size;
       break;
     case ARG_AUTORECOVER:
       this->autorecover = g_value_get_boolean (value);
@@ -325,7 +325,7 @@
       g_value_set_int (value, this->desired_period_size);
       break;
     case ARG_BUFFERSIZE:
-      g_value_set_int (value, this->period_size * this->period_count);
+      g_value_set_int (value, this->desired_period_size * this->desired_period_count);
       break;
     case ARG_AUTORECOVER:
       g_value_set_boolean (value, this->autorecover);
