Index: quisk-3.5.11/charleston/chas_rx1.c
===================================================================
--- quisk-3.5.11.orig/charleston/chas_rx1.c	2012-01-30 21:54:33.000000000 -0500
+++ quisk-3.5.11/charleston/chas_rx1.c	2012-01-30 23:35:11.000000000 -0500
@@ -11,9 +11,14 @@
 #include <unistd.h>		// NOT NEEDED for SDR-IQ support
 #include <complex.h>		// needed for SDR-IQ support
 #include <math.h>			// TF added for Charleston Rx1 support
+#define SOUND_MODULE 1
 #include "quisk.h"
 #include "chas_rx1.h"
 
+static ty_sample_start *pt_sample_start;
+static ty_sample_stop  *pt_sample_stop;
+static ty_sample_read  *pt_sample_read;
+
 #define DEBUG		0
 
 #define NAME_SIZE		16
@@ -820,9 +825,9 @@
 		return NULL;
 
 // Record our C-language Start/Stop/Read functions for use by sound.c.
-	pt_sample_start = &quisk_start_chas_rx1;
-	pt_sample_stop = &quisk_stop_chas_rx1;
-	pt_sample_read = &quisk_read_chas_rx1;
+	*pt_sample_start = &quisk_start_chas_rx1;
+	*pt_sample_stop = &quisk_stop_chas_rx1;
+	*pt_sample_read = &quisk_read_chas_rx1;
 
 	quisk_open_chas_rx1(buf, 128);			// Charleston RX1 specific
 	return PyString_FromString(buf);		// return a string message
@@ -934,5 +939,40 @@
 // Initialization, and registration of public symbol "initchas_rx1":
 PyMODINIT_FUNC initchas_rx1 (void)
 {
+  PyObject *c_api_object;
+  PyObject *module;
+
+  module = PyImport_ImportModule("quisk._quisk");
+  if (module == NULL)
+    return;
+
+  c_api_object = PyObject_GetAttrString(module, "_C_sample_start");
+  if (c_api_object == NULL) {
+    Py_DECREF(module);
+    return;
+  }
+  if (PyCObject_Check(c_api_object))
+    pt_sample_start = (ty_sample_start *)PyCObject_AsVoidPtr(c_api_object);
+
+  c_api_object = PyObject_GetAttrString(module, "_C_sample_stop");
+  if (c_api_object == NULL) {
+    Py_DECREF(module);
+    return;
+  }
+  if (PyCObject_Check(c_api_object))
+    pt_sample_stop = (ty_sample_stop *)PyCObject_AsVoidPtr(c_api_object);
+
+  c_api_object = PyObject_GetAttrString(module, "_C_sample_read");
+  if (c_api_object == NULL) {
+    Py_DECREF(module);
+    return;
+  }
+  if (PyCObject_Check(c_api_object))
+    pt_sample_read = (ty_sample_read *)PyCObject_AsVoidPtr(c_api_object);
+
+  Py_DECREF(c_api_object);
+  Py_DECREF(module);
+
 	Py_InitModule ("chas_rx1", QuiskMethods);
+	return;
 }
