diff -ruN coot-0.6.2-pre-1-orig/scheme/group-settings.scm coot-0.6.2-pre-1/scheme/group-settings.scm
--- coot-0.6.2-pre-1-orig/scheme/group-settings.scm	2009-07-04 05:57:36.000000000 -0700
+++ coot-0.6.2-pre-1/scheme/group-settings.scm	2010-03-31 09:52:42.000000000 -0700
@@ -28,6 +28,7 @@
       (set-browser-interface "firefox"))
 
   (if (string=? os-type "Darwin")
+	  (set-display-lists-for-maps 0)
       (set-browser-interface "open")))
 
 ;; York setting for molprobity. 
diff -ruN coot-0.6.2-pre-1-orig/scheme/povray.scm coot-0.6.2-pre-1/scheme/povray.scm
--- coot-0.6.2-pre-1-orig/scheme/povray.scm	2009-07-04 05:57:34.000000000 -0700
+++ coot-0.6.2-pre-1/scheme/povray.scm	2010-03-31 09:54:43.000000000 -0700
@@ -14,7 +14,7 @@
   (lambda ()
     
     ; this is directory that contains colors.inc
-    (list (string-append "+L/sw/share/povray-" povray-version "/include")
+    (list (string-append "+L@PREFIX@/share/povray-" povray-version "/include")
 	  "+FN16")))
 
 ;; Run provray using current displayed image and write .pov file to
diff -ruN coot-0.6.2-pre-1-orig/scheme/raster3d.scm coot-0.6.2-pre-1/scheme/raster3d.scm
--- coot-0.6.2-pre-1-orig/scheme/raster3d.scm	2009-07-04 05:57:34.000000000 -0700
+++ coot-0.6.2-pre-1/scheme/raster3d.scm	2010-03-31 09:55:54.000000000 -0700
@@ -1,7 +1,7 @@
 
 (define coot-r3d-file-name "coot.r3d")
 (define coot-png-file-name "coot.png")
-(define coot-png-display-program "display")
+(define coot-png-display-program "open")
 
 ;; run raster3d
 (define render-image


diff -crB ./src/graphics-info.h ../coot-patched/src/graphics-info.h
*** ./src/graphics-info.h	2013-04-27 16:04:58.000000000 +0200
--- ../coot-patched/src/graphics-info.h	2013-07-25 04:09:17.861265837 +0200
***************
*** 3307,3313 ****
  				      short int move_copy_of_imol2_flag);

  #ifdef HAVE_SSMLIB
!    void print_ssm_sequence_alignment(CSSMAlign *SSMAlign,
  				     atom_selection_container_t asc_ref,
  				     atom_selection_container_t asc_mov,
  				     PCAtom *atom_selection1, 
--- 3307,3313 ----
  				      short int move_copy_of_imol2_flag);

  #ifdef HAVE_SSMLIB
!    void print_ssm_sequence_alignment(ssm::Align *SSMAlign,
  				     atom_selection_container_t asc_ref,
  				     atom_selection_container_t asc_mov,
  				     PCAtom *atom_selection1, 
***************
*** 3315,3321 ****
  				     int n_selected_atoms_1, int n_selected_atoms_2, 
  				     short int move_copy_of_imol2_flag);

!    void make_and_print_horizontal_ssm_sequence_alignment(CSSMAlign *SSMAlign,
  							 atom_selection_container_t asc_ref,
  							 atom_selection_container_t asc_mov,
  							 PCAtom *atom_selection1, 
--- 3315,3321 ----
  				     int n_selected_atoms_1, int n_selected_atoms_2, 
  				     short int move_copy_of_imol2_flag);

!    void make_and_print_horizontal_ssm_sequence_alignment(ssm::Align *SSMAlign,
  							 atom_selection_container_t asc_ref,
  							 atom_selection_container_t asc_mov,
  							 PCAtom *atom_selection1, 
***************
*** 3325,3331 ****
     void print_horizontal_ssm_sequence_alignment(std::pair<std::string, std::string> aligned_sequences) const;

     std::pair<std::string, std::string>
!      get_horizontal_ssm_sequence_alignment(CSSMAlign *SSMAlign,
  					   atom_selection_container_t asc_ref,
  					   atom_selection_container_t asc_mov,
  					   PCAtom *atom_selection1, PCAtom *atom_selection2,
--- 3325,3331 ----
     void print_horizontal_ssm_sequence_alignment(std::pair<std::string, std::string> aligned_sequences) const;

     std::pair<std::string, std::string>
!      get_horizontal_ssm_sequence_alignment(ssm::Align *SSMAlign,
  					   atom_selection_container_t asc_ref,
  					   atom_selection_container_t asc_mov,
  					   PCAtom *atom_selection1, PCAtom *atom_selection2,
diff -crB ./src/graphics-info-superpose.cc ../coot-patched/src/graphics-info-superpose.cc
*** ./src/graphics-info-superpose.cc	2013-01-16 17:40:31.000000000 +0100
--- ../coot-patched/src/graphics-info-superpose.cc	2013-07-25 04:42:47.876256551 +0200
***************
*** 22,27 ****
--- 22,31 ----
  #include "Python.h"  // before system includes to stop "POSIX_C_SOURCE" redefined problems
  #endif

+ #ifdef HAVE_SSMLIB
+ #include "ssm_defs.h"
+ #endif 
+ 
  #if defined _MSC_VER
  #include <windows.h>
  #endif
***************
*** 168,179 ****

  #ifdef HAVE_SSMLIB

!    int precision = SSMP_Normal;
!    int connectivity = CSSC_Flexible;

     // probably not necessary, not sure:
!    SetSSConnectivityCheck ( CSSC_Flexible );
!    SetSSMatchPrecision    ( SSMP_Normal );

     if (asc_ref.n_selected_atoms > 0) { 
        if (asc_mov.n_selected_atoms > 0) {
--- 172,183 ----

  #ifdef HAVE_SSMLIB

!    ssm::PRECISION precision = ssm::PREC_Normal;
!    ssm::CONNECTIVITY connectivity = ssm::CONNECT_Flexible;

     // probably not necessary, not sure:
!    ssm::SetConnectivityCheck ( ssm::CONNECT_Flexible );
!    ssm::SetMatchPrecision    ( ssm::PREC_Normal );

     if (asc_ref.n_selected_atoms > 0) { 
        if (asc_mov.n_selected_atoms > 0) {
***************
*** 199,234 ****

  	 // Remove the pointer one day.
  	 // 
! 	 CSSMAlign *SSMAlign = new CSSMAlign();
! 	 int rc = SSMAlign->Align(mol2, mol1, precision, connectivity,
  				  asc_mov.SelectionHandle,
  				  asc_ref.SelectionHandle);

  	 if (rc)  {
  	    std::string ws;
  	    switch (rc)  {
! 	    case SSM_noHits :
  	       std::cout << " *** secondary structure does not match.\n";
  	       ws = "secondary structure does not match";
  	       break;
! 	    case SSM_noSPSN :
  	       std::cout << " *** structures are too remote.\n";
  	       ws = "structures are too remote";
  	       break;
! 	    case SSM_noGraph :
  	       std::cout << " *** can't make graph for " << name1 << "\n";
  	       ws = "can't make graph for " + name1;
  	       ws += " structure";
  	       break;
! 	    case SSM_noVertices :
  	       std::cout << " *** empty graph for " << name1 << "\n";
  	       ws = "empty graph for " + name1;
  	       break;
! 	    case SSM_noGraph2 :
  	       std::cout << " *** can't make graph for " << name2 << "\n";
  	       ws = "can't make graph for " + name2;
  	       break;
! 	    case SSM_noVertices2 :
  	       std::cout << " *** empty graph for " << name2 << "\n";
  	       ws = "empty graph for " + name2;
  	       break;
--- 203,238 ----

  	 // Remove the pointer one day.
  	 // 
! 	 ssm::Align *SSMAlign = new ssm::Align();
! 	 int rc = SSMAlign->align(mol2, mol1, precision, connectivity,
  				  asc_mov.SelectionHandle,
  				  asc_ref.SelectionHandle);

  	 if (rc)  {
  	    std::string ws;
  	    switch (rc)  {
! 	    case ssm::RC_NoHits :
  	       std::cout << " *** secondary structure does not match.\n";
  	       ws = "secondary structure does not match";
  	       break;
! 	    case ssm::RC_NoSuperposition :
  	       std::cout << " *** structures are too remote.\n";
  	       ws = "structures are too remote";
  	       break;
! 	    case ssm::RC_NoGraph :
  	       std::cout << " *** can't make graph for " << name1 << "\n";
  	       ws = "can't make graph for " + name1;
  	       ws += " structure";
  	       break;
! 	    case ssm::RC_NoVertices :
  	       std::cout << " *** empty graph for " << name1 << "\n";
  	       ws = "empty graph for " + name1;
  	       break;
! 	    case ssm::RC_NoGraph2 :
  	       std::cout << " *** can't make graph for " << name2 << "\n";
  	       ws = "can't make graph for " + name2;
  	       break;
! 	    case ssm::RC_NoVertices2 :
  	       std::cout << " *** empty graph for " << name2 << "\n";
  	       ws = "empty graph for " + name2;
  	       break;
***************
*** 298,304 ****
  	    // mat44 tmat;
  	    // realtype rmsdAchieved, seqIdentity, nCombs;
  	    // int nAligned, nGaps, nMisD;
! 	    // CSuperpose Superpose;  type in class CSSMAlign
  	    // 
  	    // Superpose->GetSuperposition(Ca1, dist1, nCa1, Ca2,
  	    // nCa2, tmat, rmsdAchieved, nAligned, nGaps, seqIdentity,
--- 302,308 ----
  	    // mat44 tmat;
  	    // realtype rmsdAchieved, seqIdentity, nCombs;
  	    // int nAligned, nGaps, nMisD;
! 	    // CSuperpose Superpose;  type in class ssm::Align
  	    // 
  	    // Superpose->GetSuperposition(Ca1, dist1, nCa1, Ca2,
  	    // nCa2, tmat, rmsdAchieved, nAligned, nGaps, seqIdentity,
***************
*** 331,337 ****

  #ifdef HAVE_SSMLIB
  void
! graphics_info_t::make_and_print_horizontal_ssm_sequence_alignment(CSSMAlign *SSMAlign,
  							 atom_selection_container_t asc_ref,
  							 atom_selection_container_t asc_mov,
  							 PCAtom *atom_selection1, PCAtom *atom_selection2,
--- 335,341 ----

  #ifdef HAVE_SSMLIB
  void
! graphics_info_t::make_and_print_horizontal_ssm_sequence_alignment(ssm::Align *SSMAlign,
  							 atom_selection_container_t asc_ref,
  							 atom_selection_container_t asc_mov,
  							 PCAtom *atom_selection1, PCAtom *atom_selection2,
***************
*** 394,400 ****

  #ifdef HAVE_SSMLIB
  std::pair<std::string, std::string>
! graphics_info_t::get_horizontal_ssm_sequence_alignment(CSSMAlign *SSMAlign,
  						       atom_selection_container_t asc_ref,
  						       atom_selection_container_t asc_mov,
  						       PCAtom *atom_selection1, PCAtom *atom_selection2,
--- 398,404 ----

  #ifdef HAVE_SSMLIB
  std::pair<std::string, std::string>
! graphics_info_t::get_horizontal_ssm_sequence_alignment(ssm::Align *SSMAlign,
  						       atom_selection_container_t asc_ref,
  						       atom_selection_container_t asc_mov,
  						       PCAtom *atom_selection1, PCAtom *atom_selection2,
***************
*** 483,489 ****

  #ifdef HAVE_SSMLIB
  void
! graphics_info_t::print_ssm_sequence_alignment(CSSMAlign *SSMAlign,
  					      atom_selection_container_t asc_ref,
  					      atom_selection_container_t asc_mov,
  					      PCAtom *atom_selection1, PCAtom *atom_selection2,
--- 487,493 ----

  #ifdef HAVE_SSMLIB
  void
! graphics_info_t::print_ssm_sequence_alignment(ssm::Align *SSMAlign,
  					      atom_selection_container_t asc_ref,
  					      atom_selection_container_t asc_mov,
  					      PCAtom *atom_selection1, PCAtom *atom_selection2,
diff -crB ./src/molecule-class-info-ncs.cc ../coot-patched/src/molecule-class-info-ncs.cc
*** ./src/molecule-class-info-ncs.cc	2013-01-16 17:40:31.000000000 +0100
--- ../coot-patched/src/molecule-class-info-ncs.cc	2013-07-25 04:44:45.450071527 +0200
***************
*** 51,56 ****
--- 51,57 ----

  #ifdef HAVE_SSMLIB
  #include "ssm_align.h"
+ #include "ssm_defs.h"
  #endif

  // This is called by make_bonds_type_checked(), which is called by
***************
*** 514,546 ****
     if (graphics_info_t::ncs_matrix_flag == coot::NCS_SSM) {
  #ifdef HAVE_SSMLIB

!       int precision = SSMP_Normal;
!       int connectivity = CSSC_Flexible;
!       CSSMAlign *SSMAlign = new CSSMAlign();
!       int rc = SSMAlign->Align(atom_sel.mol, atom_sel.mol,
  			       precision, connectivity, SelHandle2, SelHandle1);

        if (rc)  {
  	 std::string ws;
  	 switch (rc)  {
! 	 case SSM_noHits :
  	    std::cout << " *** secondary structure does not match.\n";
  	    ws = "secondary structure does not match";
  	    break;
! 	 case SSM_noSPSN :
  	    std::cout << " *** structures are too remote.\n";
  	    ws = "structures are too remote";
  	    break;
! 	 case SSM_noGraph :
  	    std::cout << " *** can't make graph for 1\n";
  	    break;
! 	 case SSM_noVertices :
  	    std::cout << " *** empty graph for 1\n";
  	    break;
! 	 case SSM_noGraph2 :
  	    std::cout << " *** can't make graph for 2\n";
  	    break;
! 	 case SSM_noVertices2 :
  	    std::cout << " *** empty graph for 2\n";
  	    break;
  	 default :
--- 515,547 ----
     if (graphics_info_t::ncs_matrix_flag == coot::NCS_SSM) {
  #ifdef HAVE_SSMLIB

!       ssm::PRECISION precision = ssm::PREC_Normal;
!       ssm::CONNECTIVITY connectivity = ssm::CONNECT_Flexible;
!       ssm::Align *SSMAlign = new ssm::Align();
!       int rc = SSMAlign->align(atom_sel.mol, atom_sel.mol,
  			       precision, connectivity, SelHandle2, SelHandle1);

        if (rc)  {
  	 std::string ws;
  	 switch (rc)  {
! 	 case ssm::RC_NoHits :
  	    std::cout << " *** secondary structure does not match.\n";
  	    ws = "secondary structure does not match";
  	    break;
! 	 case ssm::RC_NoSuperposition :
  	    std::cout << " *** structures are too remote.\n";
  	    ws = "structures are too remote";
  	    break;
! 	 case ssm::RC_NoGraph :
  	    std::cout << " *** can't make graph for 1\n";
  	    break;
! 	 case ssm::RC_NoVertices :
  	    std::cout << " *** empty graph for 1\n";
  	    break;
! 	 case ssm::RC_NoGraph2 :
  	    std::cout << " *** can't make graph for 2\n";
  	    break;
! 	 case ssm::RC_NoVertices2 :
  	    std::cout << " *** empty graph for 2\n";
  	    break;
  	 default :
