<?xml version="1.0" encoding="utf-8"?>
<informationTable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sec.gov/edgar/document/thirteenf/informationtable">
  <infoTable>
    <nameOfIssuer>3M Company</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>88579y101</cusip>
    <value>20531</value>
    <shrsOrPrnAmt>
      <sshPrnamt>116500</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>116500</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>A T &amp; T Inc New</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>00206r102</cusip>
    <value>586</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14440</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>14440</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Abbott Labs</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>002824100</cusip>
    <value>603</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14261</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>14261</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Abbvie Inc. Com</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>00287y109</cusip>
    <value>1188</value>
    <shrsOrPrnAmt>
      <sshPrnamt>18837</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>18837</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Alphabet Inc Cap Stk Cl A</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>02079k305</cusip>
    <value>256</value>
    <shrsOrPrnAmt>
      <sshPrnamt>318</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>318</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Amazon.Com Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>023135106</cusip>
    <value>454</value>
    <shrsOrPrnAmt>
      <sshPrnamt>542</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>542</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Apple Computer</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>037833100</cusip>
    <value>6309</value>
    <shrsOrPrnAmt>
      <sshPrnamt>55807</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>55807</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Auto Data Processing</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>053015103</cusip>
    <value>19135</value>
    <shrsOrPrnAmt>
      <sshPrnamt>216952</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>216952</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Becton Dickinson</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>075887109</cusip>
    <value>369</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2051</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>2051</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Bellicum Pharmaceutica</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>079481107</cusip>
    <value>1584</value>
    <shrsOrPrnAmt>
      <sshPrnamt>79612</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>79612</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Berkshire Hathaway Cl B</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>084670702</cusip>
    <value>309</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2140</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>2140</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Black Stone Minerals L Com Uni</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>09225m101</cusip>
    <value>1264</value>
    <shrsOrPrnAmt>
      <sshPrnamt>70998</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>70998</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Bristol Myers Squibb</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>110122108</cusip>
    <value>294</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5450</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>5450</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>CVS Health</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>126650100</cusip>
    <value>12736</value>
    <shrsOrPrnAmt>
      <sshPrnamt>143114</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>143114</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Chevron Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>166764100</cusip>
    <value>2449</value>
    <shrsOrPrnAmt>
      <sshPrnamt>23795</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>23795</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Cisco Systems</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>17275R102</cusip>
    <value>307</value>
    <shrsOrPrnAmt>
      <sshPrnamt>9670</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>9670</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Clorox Co Del</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>189054109</cusip>
    <value>228</value>
    <shrsOrPrnAmt>
      <sshPrnamt>1820</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>1820</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Coca-Cola</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>191216100</cusip>
    <value>17088</value>
    <shrsOrPrnAmt>
      <sshPrnamt>403785</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>403785</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Colgate Palmolive</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>194162103</cusip>
    <value>330</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4446</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>4446</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>ConocoPhillips</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>20825C104</cusip>
    <value>257</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5911</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>5911</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dominion Res Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>25746U109</cusip>
    <value>947</value>
    <shrsOrPrnAmt>
      <sshPrnamt>12750</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>12750</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Donaldson</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>257651109</cusip>
    <value>20620</value>
    <shrsOrPrnAmt>
      <sshPrnamt>552380</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>552380</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dorchester Minerals LP</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>25820R105</cusip>
    <value>817</value>
    <shrsOrPrnAmt>
      <sshPrnamt>53023</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>53023</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dover</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>260003108</cusip>
    <value>16229</value>
    <shrsOrPrnAmt>
      <sshPrnamt>220382</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>220382</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Dupont de Nemours</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>263534109</cusip>
    <value>346</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5172</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>5172</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Ecolab</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>278865100</cusip>
    <value>21409</value>
    <shrsOrPrnAmt>
      <sshPrnamt>175889</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>175889</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Emerson Electric</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>291011104</cusip>
    <value>15264</value>
    <shrsOrPrnAmt>
      <sshPrnamt>280018</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>280018</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Exxon Mobil Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>30231g102</cusip>
    <value>4985</value>
    <shrsOrPrnAmt>
      <sshPrnamt>57110</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>57110</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>FedEx</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>31428x106</cusip>
    <value>19935</value>
    <shrsOrPrnAmt>
      <sshPrnamt>114122</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>114122</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>General Electric</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>369604103</cusip>
    <value>338</value>
    <shrsOrPrnAmt>
      <sshPrnamt>11422</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>11422</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Honeywell International</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>438516106</cusip>
    <value>14745</value>
    <shrsOrPrnAmt>
      <sshPrnamt>126470</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>126470</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Illinois Tool Works</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>452308109</cusip>
    <value>24688</value>
    <shrsOrPrnAmt>
      <sshPrnamt>206006</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>206006</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Intel</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>458140100</cusip>
    <value>21645</value>
    <shrsOrPrnAmt>
      <sshPrnamt>573373</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>573373</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>International Business Machine</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>459200101</cusip>
    <value>525</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3304</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>3304</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Intuitive Surgical Inc Com New</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>46120E602</cusip>
    <value>236</value>
    <shrsOrPrnAmt>
      <sshPrnamt>325</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>325</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Johnson &amp; Johnson</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>478160104</cusip>
    <value>21489</value>
    <shrsOrPrnAmt>
      <sshPrnamt>181909</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>181909</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Kimberly Clark Corp.</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>494368103</cusip>
    <value>256</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2029</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>2029</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Luminex Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>55027E102</cusip>
    <value>890</value>
    <shrsOrPrnAmt>
      <sshPrnamt>39175</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>39175</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Magellan Midstream Prt Unit Rp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>559080106</cusip>
    <value>580</value>
    <shrsOrPrnAmt>
      <sshPrnamt>8200</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>8200</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>McDermott Intl Inc</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>580037109</cusip>
    <value>54</value>
    <shrsOrPrnAmt>
      <sshPrnamt>10850</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>10850</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Medtronic PLC</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>g5960l103</cusip>
    <value>544</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6297</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>6297</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Merck &amp; Co Inc New</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>58933Y105</cusip>
    <value>316</value>
    <shrsOrPrnAmt>
      <sshPrnamt>5058</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>5058</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Microsoft</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>594918104</cusip>
    <value>23478</value>
    <shrsOrPrnAmt>
      <sshPrnamt>407601</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>407601</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>National Instr</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>636518102</cusip>
    <value>14248</value>
    <shrsOrPrnAmt>
      <sshPrnamt>501690</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>501690</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nokia</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>654902204</cusip>
    <value>87</value>
    <shrsOrPrnAmt>
      <sshPrnamt>15100</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>15100</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Nordson</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>655663102</cusip>
    <value>28053</value>
    <shrsOrPrnAmt>
      <sshPrnamt>281571</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>281571</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Novartis AG</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>66987V109</cusip>
    <value>15291</value>
    <shrsOrPrnAmt>
      <sshPrnamt>193652</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>193652</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Paccar</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>693718108</cusip>
    <value>15429</value>
    <shrsOrPrnAmt>
      <sshPrnamt>262486</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>262486</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>PepsiCo</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>713448108</cusip>
    <value>19329</value>
    <shrsOrPrnAmt>
      <sshPrnamt>177706</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>177706</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Pfizer, Inc.</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>717081103</cusip>
    <value>551</value>
    <shrsOrPrnAmt>
      <sshPrnamt>16257</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>16257</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Phillips 66 COM</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>718546104</cusip>
    <value>229</value>
    <shrsOrPrnAmt>
      <sshPrnamt>2843</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>2843</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Procter &amp; Gamble</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>742718109</cusip>
    <value>19539</value>
    <shrsOrPrnAmt>
      <sshPrnamt>217707</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>217707</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sabine Royalty Trust UBI</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>785688102</cusip>
    <value>515</value>
    <shrsOrPrnAmt>
      <sshPrnamt>14000</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>14000</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>San Juan Basin Royalty Trust</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>798241105</cusip>
    <value>3820</value>
    <shrsOrPrnAmt>
      <sshPrnamt>647452</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>647452</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Schlumberger Ltd</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>806857108</cusip>
    <value>15023</value>
    <shrsOrPrnAmt>
      <sshPrnamt>191032</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>191032</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Suburban Propane Partn Unit Lt</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>864482104</cusip>
    <value>220</value>
    <shrsOrPrnAmt>
      <sshPrnamt>6600</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>6600</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Sysco Corp</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>871829107</cusip>
    <value>209</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4273</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>4273</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Telefonica de Espana</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>879382208</cusip>
    <value>423</value>
    <shrsOrPrnAmt>
      <sshPrnamt>41976</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>41976</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>United Parcel Svc Cl B</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>911312106</cusip>
    <value>17136</value>
    <shrsOrPrnAmt>
      <sshPrnamt>156689</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>156689</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Verizon Communications</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>92343v104</cusip>
    <value>243</value>
    <shrsOrPrnAmt>
      <sshPrnamt>4671</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>4671</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>W.W. Grainger</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>384802104</cusip>
    <value>19965</value>
    <shrsOrPrnAmt>
      <sshPrnamt>88798</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>88798</None>
    </votingAuthority>
  </infoTable>
  <infoTable>
    <nameOfIssuer>Waste Management Inc Del</nameOfIssuer>
    <titleOfClass>COM</titleOfClass>
    <cusip>94106L109</cusip>
    <value>223</value>
    <shrsOrPrnAmt>
      <sshPrnamt>3500</sshPrnamt>
      <sshPrnamtType>SH</sshPrnamtType>
    </shrsOrPrnAmt>
    <investmentDiscretion>SOLE</investmentDiscretion>
    <votingAuthority>
      <Sole>0</Sole>
      <Shared>0</Shared>
      <None>3500</None>
    </votingAuthority>
  </infoTable>
</informationTable>
