--- ghmm.orig/tests/mcmc.c
+++ ghmm/tests/mcmc.c
@@ -14,6 +14,8 @@
 #include <ghmm/foba.h>
 #include <ghmm/reestimate.h>
 #include <ghmm/obsolete.h>
+#include <ghmm/fbgibbs.h>
+#include <ghmm/cfbgibbs.h>
 
 #include <time.h>//time
 int* getList(char* fileName, int count){
--- ghmm.orig/ghmmwrapper/sclass_change.c
+++ ghmm/ghmmwrapper/sclass_change.c
@@ -95,7 +95,7 @@
    if (pModule == NULL) {   
      printf("C: Importing Python module ... ");
     
-     pName = PyString_FromString(ModuleName);
+     pName = PyUnicode_FromString(ModuleName);
    
      pModule = PyImport_Import(pName);       /* Import module */
      if(!pModule) {
@@ -130,16 +130,16 @@
    }    
    PyTuple_SetItem(pArgs, 0, pList); 
 
-   pValue = PyInt_FromLong((long)k);
+   pValue = PyLong_FromLong((long)k);
    PyTuple_SetItem(pArgs, 1, pValue); 
 
-   pValue = PyInt_FromLong((long)t);
+   pValue = PyLong_FromLong((long)t);
    PyTuple_SetItem(pArgs, 2, pValue); 
    
    pValue = PyObject_CallObject(pFunc, pArgs); // Calling Python 
 
    /* parsing the result from Python to C data type */
-   class = PyInt_AsLong(pValue);
+   class = PyLong_AsLong(pValue);
   /*printf("C: The returned class is %d\n",class);*/
      
    /* cleaning up */
@@ -211,16 +211,16 @@
    }    
    PyTuple_SetItem(pArgs, 0, pList); 
 
-   pValue = PyInt_FromLong((long)k);
+   pValue = PyLong_FromLong((long)k);
    PyTuple_SetItem(pArgs, 1, pValue); 
 
-   pValue = PyInt_FromLong((long)t);
+   pValue = PyLong_FromLong((long)t);
    PyTuple_SetItem(pArgs, 2, pValue); 
    
    pValue = PyObject_CallObject(pyCallback, pArgs); // Calling Python 
 
    /* parsing the result from Python to C data type */
-   class = PyInt_AsLong(pValue);
+   class = PyLong_AsLong(pValue);
    /*printf("C: The returned class is %d\n",class);*/
    
    if (class == -1)  {
