--- ./helpers/config.sub.orig	2012-10-27 22:09:04.429089223 +0200
+++ ./helpers/config.sub	2012-10-27 22:09:11.501124295 +0200
@@ -158,6 +158,7 @@
 		| sparc | sparclet | sparclite | sparc64)
 		basic_machine=$basic_machine-unknown
 		;;
+	x86_64-pc) ;;
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
 	# (2) the word "unknown" tends to confuse beginning users.
--- ./src/base/ntki/ntkiFrames.c.orig	2012-10-27 22:09:26.961200963 +0200
+++ ./src/base/ntki/ntkiFrames.c	2012-10-27 22:09:32.901230409 +0200
@@ -23,7 +23,7 @@
 ////////////////////////////////////////////////////////////////////////
 
 static void Ntk_NetworkAddFrame( Ntk_Network_t * pNetNew, Ntk_Network_t * pNet, int iFrame );
-static void Ntk_NetworkReorderCiCo( Ntk_Network_t * pNet );
+// static void Ntk_NetworkReorderCiCo( Ntk_Network_t * pNet );
 
 extern int  Ntk_NetworkVerifyVariables( Ntk_Network_t * pNet1, Ntk_Network_t * pNet2, int fVerbose );
 
--- ./src/graph/wn/wnStrashBin.c.orig	2012-10-27 22:27:29.966571294 +0200
+++ ./src/graph/wn/wnStrashBin.c	2012-10-27 22:27:55.898699881 +0200
@@ -76,8 +76,10 @@
 //    assert( RetValue );
 
     // clean the data of the nodes in the window
-    Ntk_NetworkForEachNodeSpecial( pWnd->pNet, pNode )
-        pNode->pCopy = (Ntk_Node_t *)pNode->pData = NULL;
+    Ntk_NetworkForEachNodeSpecial( pWnd->pNet, pNode ) {
+        pNode->pData = NULL;
+        pNode->pCopy = NULL;
+    }
 
     // set the leaves
     pgInputs = Sh_ManagerReadVars( pMan );
